From 6fbf5bc048f99af6d3d20ac1ada6b2eaa8a9d79a Mon Sep 17 00:00:00 2001
From: David Benson <david@jgraph.com>
Date: Wed, 7 Nov 2018 16:49:01 +0000
Subject: [PATCH] 9.3.4 release

---
 ChangeLog                                     |    9 +
 VERSION                                       |    2 +-
 etc/mxgraph/mxClient.js                       |    2 +-
 etc/vsd/README.txt                            |    2 +-
 .../importer/GliffyDiagramConverter.java      |    3 +-
 .../io/gliffy/importer/SVGImporterUtils.java  |  131 ++
 .../mxgraph/io/gliffy/model/GliffyObject.java |    5 +-
 src/main/webapp/WEB-INF/lib/mxgraph-core.jar  |  Bin 463555 -> 468185 bytes
 src/main/webapp/cache.manifest                |    2 +-
 src/main/webapp/index.html                    |  114 +-
 src/main/webapp/js/app.min.js                 | 1680 ++++++++-------
 src/main/webapp/js/atlas-viewer.min.js        | 1907 +++++++++--------
 src/main/webapp/js/atlas.min.js               |  791 +++----
 src/main/webapp/js/diagramly/App.js           |   67 +-
 .../webapp/js/diagramly/DistanceGuides.js     |  214 +-
 src/main/webapp/js/diagramly/DrawioFile.js    |  139 +-
 src/main/webapp/js/diagramly/DriveClient.js   |  571 ++++-
 src/main/webapp/js/diagramly/DriveFile.js     |  467 +++-
 src/main/webapp/js/diagramly/DriveRealtime.js |   47 +-
 src/main/webapp/js/diagramly/Editor.js        |   26 +-
 src/main/webapp/js/diagramly/EditorUi.js      |   49 +-
 src/main/webapp/js/diagramly/GitHubClient.js  |    2 +-
 src/main/webapp/js/diagramly/Menus.js         |   63 +-
 src/main/webapp/js/diagramly/Minimal.js       |   11 +-
 src/main/webapp/js/diagramly/Pages.js         |    8 +-
 src/main/webapp/js/diagramly/vsdx/importer.js |   16 +-
 src/main/webapp/js/embed-static.min.js        |   23 +-
 src/main/webapp/js/extensions.min.js          |   16 +-
 src/main/webapp/js/mxgraph/Dialogs.js         |   10 +-
 src/main/webapp/js/mxgraph/Graph.js           |   12 +
 src/main/webapp/js/reader.min.js              |   23 +-
 src/main/webapp/js/sanitizer/sanitizer.min.js |    3 +-
 src/main/webapp/js/viewer.min.js              | 1907 +++++++++--------
 src/main/webapp/resources/dia.txt             |    4 +-
 src/main/webapp/resources/dia_am.txt          |    4 +-
 src/main/webapp/resources/dia_ar.txt          |    4 +-
 src/main/webapp/resources/dia_bg.txt          |    2 +
 src/main/webapp/resources/dia_bn.txt          |    4 +-
 src/main/webapp/resources/dia_bs.txt          |    2 +
 src/main/webapp/resources/dia_ca.txt          |    2 +
 src/main/webapp/resources/dia_cs.txt          |    2 +
 src/main/webapp/resources/dia_da.txt          |    2 +
 src/main/webapp/resources/dia_de.txt          |    4 +-
 src/main/webapp/resources/dia_el.txt          |    2 +
 src/main/webapp/resources/dia_eo.txt          |   20 +-
 src/main/webapp/resources/dia_es.txt          |    2 +
 src/main/webapp/resources/dia_et.txt          |    2 +
 src/main/webapp/resources/dia_fa.txt          |    2 +
 src/main/webapp/resources/dia_fi.txt          |    2 +
 src/main/webapp/resources/dia_fil.txt         |    2 +
 src/main/webapp/resources/dia_fr.txt          |    2 +
 src/main/webapp/resources/dia_gu.txt          |    4 +-
 src/main/webapp/resources/dia_he.txt          |    2 +
 src/main/webapp/resources/dia_hi.txt          |    4 +-
 src/main/webapp/resources/dia_hr.txt          |    4 +-
 src/main/webapp/resources/dia_hu.txt          |    2 +
 src/main/webapp/resources/dia_i18n.txt        |    2 +
 src/main/webapp/resources/dia_id.txt          |    2 +
 src/main/webapp/resources/dia_it.txt          |    2 +
 src/main/webapp/resources/dia_ja.txt          |    2 +
 src/main/webapp/resources/dia_kn.txt          |    4 +-
 src/main/webapp/resources/dia_ko.txt          |    2 +
 src/main/webapp/resources/dia_lt.txt          |    4 +-
 src/main/webapp/resources/dia_lv.txt          |    4 +-
 src/main/webapp/resources/dia_ml.txt          |    4 +-
 src/main/webapp/resources/dia_mr.txt          |    4 +-
 src/main/webapp/resources/dia_ms.txt          |    2 +
 src/main/webapp/resources/dia_nl.txt          |   14 +-
 src/main/webapp/resources/dia_no.txt          |    2 +
 src/main/webapp/resources/dia_pl.txt          |    2 +
 src/main/webapp/resources/dia_pt-br.txt       |    2 +
 src/main/webapp/resources/dia_pt.txt          |    2 +
 src/main/webapp/resources/dia_ro.txt          |    2 +
 src/main/webapp/resources/dia_ru.txt          |    2 +
 src/main/webapp/resources/dia_sk.txt          |    4 +-
 src/main/webapp/resources/dia_sl.txt          |    4 +-
 src/main/webapp/resources/dia_sr.txt          |    2 +
 src/main/webapp/resources/dia_sv.txt          |    2 +
 src/main/webapp/resources/dia_sw.txt          |    4 +-
 src/main/webapp/resources/dia_ta.txt          |    4 +-
 src/main/webapp/resources/dia_te.txt          |    4 +-
 src/main/webapp/resources/dia_th.txt          |    2 +
 src/main/webapp/resources/dia_tr.txt          |    2 +
 src/main/webapp/resources/dia_uk.txt          |    2 +
 src/main/webapp/resources/dia_vi.txt          |    2 +
 src/main/webapp/resources/dia_zh-tw.txt       |    2 +
 src/main/webapp/resources/dia_zh.txt          |    2 +
 87 files changed, 5033 insertions(+), 3463 deletions(-)
 create mode 100644 src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java

diff --git a/ChangeLog b/ChangeLog
index 565b55391..c25cc3c8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+06-NOV-2018: 9.3.4
+
+- Improves sanity check for Google Drive files
+- Uses mxGraph 3.9.11 beta 4
+
+02-NOV-2018: 9.3.2
+
+- Adds sanity check for Google Drive files
+
 26-OCT-2018: 9.3.1
 
 - Adds current page index to JSON protocol
diff --git a/VERSION b/VERSION
index 4fb2e5db3..ca327ca07 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-9.3.1
\ No newline at end of file
+9.3.4
\ No newline at end of file
diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js
index fa940fd73..c75a30185 100644
--- a/etc/mxgraph/mxClient.js
+++ b/etc/mxgraph/mxClient.js
@@ -556,7 +556,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
diff --git a/etc/vsd/README.txt b/etc/vsd/README.txt
index 2242b6126..b6f50e904 100644
--- a/etc/vsd/README.txt
+++ b/etc/vsd/README.txt
@@ -36,7 +36,7 @@ Running the conversion site without Hyper-V:
 ========================================
 Running the conversion site with Hyper-V:
 
-1- Run VsdConverterApp TCP sever
+1- Run VsdConverterApp TCP sever (Also disable QuickEdit Mode: Property > Options > Edit Options > QuickEdit Mode)
 2- Deploy VsdConverter to IIS (manually or using Web Deployment Tool).
 
 In details (Ignore Hyper-V steps if it is running directly on the server):
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 9aa6c01b8..e2552dbaa 100644
--- a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
+++ b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
@@ -811,7 +811,8 @@ public class GliffyDiagramConverter
 				cell.setVertex(true);
 				style.append("shape=image;imageAspect=0;");
 				Resource res = gliffyDiagram.embeddedResources.get(svg.embeddedResourceId);
-
+				SVGImporterUtils svgUtils = new SVGImporterUtils();
+				res.data = svgUtils.setViewBox(res.data);
 				style.append("image=data:image/svg+xml,").append(res.getBase64EncodedData()).append(";");
 			}
 		}
diff --git a/src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java b/src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java
new file mode 100644
index 000000000..7a81a8bd5
--- /dev/null
+++ b/src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java
@@ -0,0 +1,131 @@
+package com.mxgraph.io.gliffy.importer;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Class is used to stripe large unused white areas on SVG files and return only important parts.
+ * For example, if you have centered square of 50x50 size on 200x200 canvas this class will remove 
+ * unused portions of the canvas and return larger square from the center.
+ *
+ */
+public class SVGImporterUtils
+{
+
+	private static final Pattern SVG_PATTERN = Pattern.compile("viewBox=\"(.*?)\"");
+
+	private final static Logger LOGGER = Logger.getLogger(SVGImporterUtils.class.getName());
+
+	public SVGImporterUtils()
+	{
+	}
+
+	/**
+	 * This is main method that will return new viewBox value. Then we use this value to update existing SVG string in Gliffy object.
+	 * 
+	 * @param svgString original SVG string from Gliffy Object.
+	 * @return recalculated viewBox parameters as a String
+	 */
+	public String setViewBox(String svgString)
+	{
+		try
+		{
+			Matcher m = SVG_PATTERN.matcher(svgString);
+			while (m.find())
+			{
+				String oldViewBox = m.group();
+				String newViewBox = getNewViewBox(svgString);
+				if (newViewBox != null)
+				{
+					return svgString.replace(oldViewBox, newViewBox);
+				}
+			}
+		}
+		catch (Throwable exc)
+		{
+			//perfectly fine to blow-up, just ignore - original string will be returned if something goes wrong
+			LOGGER.log(Level.WARNING, "Cannot set viewBox for: " + svgString + " with error " + exc);
+		}
+
+		return svgString;
+	}
+
+	private String getNewViewBox(String svgString) throws Exception
+	{
+		String result = null;
+		Object svg = createSVGDocument(svgString);
+		buildDocument(svg);
+		result = getViewBoxString(svg);
+		return result;
+	}
+
+	private Object createSVGDocument(String svgString) throws Exception
+	{
+		InputStream stream = new ByteArrayInputStream(svgString.getBytes(StandardCharsets.UTF_8));
+		Class<?> myClass = Class.forName("org.apache.batik.dom.svg.SAXSVGDocumentFactory");
+		Method myMethod = myClass.getDeclaredMethod("createSVGDocument", String.class, InputStream.class);
+		String param = null;
+		Object newInstance = myClass.getConstructor(String.class).newInstance(param);
+		Object o = myMethod.invoke(newInstance, "http://www.w3.org/2000/svg", stream);
+		return o;
+	}
+
+	private void buildDocument(Object svg) throws Exception
+	{
+		Class<?> bridgeContextClass = Class.forName("org.apache.batik.bridge.BridgeContext");
+		Class<?> userAgentAdapterClass = Class.forName("org.apache.batik.bridge.UserAgentAdapter");
+		Class<?> userAgentClass = Class.forName("org.apache.batik.bridge.UserAgent");
+		Class<?> gvtBuilderClass = Class.forName("org.apache.batik.bridge.GVTBuilder");
+		Class<?> documentClass = Class.forName("org.w3c.dom.Document");
+
+		Method myBuildMethod = gvtBuilderClass.getDeclaredMethod("build", bridgeContextClass, documentClass);
+		Object newBuilderInstance = gvtBuilderClass.getConstructor().newInstance();
+		Object newUserAgentAdapterInstance = userAgentAdapterClass.getConstructor().newInstance();
+		Object newBridgeContextClass = bridgeContextClass.getConstructor(userAgentClass).newInstance(newUserAgentAdapterInstance);
+		myBuildMethod.invoke(newBuilderInstance, newBridgeContextClass, svg);
+
+	}
+
+	private String getViewBoxString(Object svg) throws Exception
+	{
+		Class<?> svgDocumentClass = Class.forName("org.apache.batik.dom.svg.SVGOMDocument");
+		Class<?> svgSVGElement = Class.forName("org.apache.batik.dom.svg.SVGOMSVGElement");
+		Class<?> svgRect = Class.forName("org.w3c.dom.svg.SVGRect");
+
+		Method getRootElement = svgDocumentClass.getDeclaredMethod("getRootElement");
+		Method getBBox = svgSVGElement.getDeclaredMethod("getBBox");
+		Method getX = svgRect.getDeclaredMethod("getX");
+		Method getY = svgRect.getDeclaredMethod("getY");
+		Method getHeight = svgRect.getDeclaredMethod("getHeight");
+		Method getWidth = svgRect.getDeclaredMethod("getWidth");
+
+		Object root = getRootElement.invoke(svg);
+		Object bbox = getBBox.invoke(root);
+		Object x = getX.invoke(bbox);
+		Object y = getY.invoke(bbox);
+		Object height = getHeight.invoke(bbox);
+		Object width = getWidth.invoke(bbox);
+
+		String result = String.format("viewBox=\"%s %s %s %s\"", getIntValue(x.toString()), getIntValue(y.toString()),
+				getIntValue(width.toString()), getIntValue(height.toString()));
+		return result;
+
+	}
+
+	private String getIntValue(String value)
+	{
+		int dot = value.indexOf(".");
+		if (dot > 0)
+		{
+			return value.substring(0, dot);
+		}
+		return value;
+	}
+
+}
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 2e26c5b85..8bb7e46e4 100644
--- a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java
+++ b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java
@@ -284,7 +284,10 @@ public class GliffyObject implements PostDeserializable
 
 	public String getText()
 	{
-		return graphic.getText().getHtml();
+		GliffyText text = graphic.getText();
+		//TODO These values are hurestics based on analyzing many files. 6 is a range from 2 to 6 so used the maximum
+		int widthDiff = "none".equals(text.overflow)? -3 : 6;
+		return "<div style='width: "+ (width + widthDiff) +"px;height: "+ height +"px;word-break: break-word;'>" + text.getHtml() + "</div>";
 	}
 
 	/**
diff --git a/src/main/webapp/WEB-INF/lib/mxgraph-core.jar b/src/main/webapp/WEB-INF/lib/mxgraph-core.jar
index 8984743d13fd980eec4917a74c806df19b39e500..a2f7829941af263449b7d5648b943e84fb6c63f0 100644
GIT binary patch
delta 339163
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%0A!lC
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
IkzM%b|2vd^VgLXD

delta 334332
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%0D$+L2Sh$sug=cOD#
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%0AE2YMrH=R&NB8zxglOy>${Mm?CcMr`_lUmK
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

diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest
index 8f38eed01..f5ee32e0b 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!
-# 10/26/2018 05:46 PM
+# 11/06/2018 04:33 PM
 
 app.html
 index.html?offline=1
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
index 604ccf543..4ca516a3b 100644
--- a/src/main/webapp/index.html
+++ b/src/main/webapp/index.html
@@ -410,7 +410,119 @@
 /**
  * Main
  */
-App.main();
+App.main(function (ui)
+{
+	// **************************************************
+	// TESTING JSON TO XML CONVERTER FOR EOL OF GOOGLE RT
+	// **************************************************
+// 	ui.JSON_CHECK = 'JSON-CHECK7';
+	
+// 	DriveFile.prototype.runCheck = function(json, fileNode, fileData)
+// 	{
+// 		try
+// 		{
+// 			this.debug('JSON Check', this.desc, json);
+			
+// 			if (this.ui.getCurrentFile() == this && !this.isModified())
+// 			{
+// 				// Gets comparable XML structures
+// 				var convert = (json != null) ? this.getComparableFile(this.ui.drive.convertJsonToXml(json, true)) : null;
+// 				var remote = (fileNode != null) ? this.getComparableFile(fileNode) : null;
+// 				var local = this.getComparableFile(this.ui.getXmlFileData());
+				
+// 				// Uses the newer of the two
+// 				var age = this.ui.drive.getRealtimeAge(this.desc, json);
+// 				var relevant = (age < 0 && convert != null) ? convert : remote;
+				
+// 				if (local == null || relevant == null || !local.isEqualNode(relevant))
+// 				{
+// 					this.log('FAIL-REPORT');
+					
+// 					var summary = ((relevant == convert) ? 'Source: Convert' : 'Source: Remote') +
+// 						'\nFile modified: ' + new Date(this.desc.modifiedDate).toUTCString();
+					
+// 					if (json != null)
+// 					{
+// 						var mod = (json.value != null && json.value.modifiedDate != null) ? json.value.modifiedDate.json : null;
+						
+// 						if (mod != null)
+// 						{
+// 							summary += '\nJson modified: ' + new Date(mod).toUTCString();	
+// 						}
+						
+// 						var bak = (json.value != null && json.value.backupDate != null) ? json.value.backupDate.json : null;
+						
+// 						if (bak != null)
+// 						{
+// 							summary += '\nJson backedup: ' + new Date(bak).toUTCString();
+// 						}
+// 					}
+					
+// 					if (local != null)
+// 					{
+// 						if (convert != null)
+// 						{
+// 							summary += '\nConvert-Equals-Local: ' + convert.isEqualNode(local);
+// 						}
+						
+// 						if (remote != null)
+// 						{
+// 							summary += '\nRemote-Equals-Local: ' + remote.isEqualNode(local);
+// 						}
+// 					}
+					
+// 					this.report('Realtime Error Report ' + new Date() +
+// 						'\n\nDescription: ' + JSON.stringify({version: this.ui.JSON_CHECK,
+// 							realtimeAge: age, title: this.desc.title, editable: this.desc.editable,
+// 							copyable: this.desc.copyable, labels: this.desc.labels, id: this.desc.id,
+// 							userPermission: this.desc.userPermission, fileSize: this.desc.fileSize,
+// 							fileExtension: this.desc.fileExtension, modifiedDate: this.desc.modifiedDate,
+// 							mimeType: this.desc.mimeType}) +
+// 						'\n\nSummary:\n' + summary +
+// 						'\n\nLocal:\n' + this.getAnonymizedXml(local) +
+// 						'\n\nRemote:\n' + this.getAnonymizedXml(remote) +
+// 						((remote == null) ? ('\n\nData:\n' + fileData) : '') +
+// 						'\n\nConvert:\n' + this.getAnonymizedXml(convert) +
+// 						'\n\nJSON:\n' + this.getAnonymizedJson(json));
+// 				}
+// 				else
+// 				{
+// 					this.log('OK-age.' + age + '.');
+// 				}
+// 			}
+// 		}
+// 		catch (e)
+// 		{
+// 			this.log('CATCH-RUNCHECK-' + e.stack, true);
+// 			this.debug(e);
+// 		}
+// 	};
+	
+// 	ui.editor.addListener('fileLoaded', mxUtils.bind(this, function()
+// 	{
+// 		try
+// 		{
+// 			var file = ui.getCurrentFile();
+			
+// 			if (file != null && file.constructor == DriveFile && file.realtime != null)
+// 			{
+// 				// With a 30% probability
+// 				if (urlParams['json-check'] != '0' && (urlParams['json-check'] == '1' ||
+// 					(Math.random() > 0.3 && urlParams['dev'] != '1')))
+// 				{
+// 					file.checkConvert();
+// 				}
+// 			}
+// 		}
+// 		catch (e)
+// 		{
+// 			// ignore
+// 		}
+// 	}));
+	// ***********
+	// END OF TEST
+	// ***********
+});
 </script>
 </body>
 </html>
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 23b09f686..aad70d0e5 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -1,6 +1,7 @@
 //fgnass.github.com/spin.js#v2.0.0
 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
 // NOTE: Modified to support data URIs for images, ie. data:image/*
+// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break"
 (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","),
 "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","),
 "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","),
@@ -25,7 +26,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
 J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X;
@@ -663,7 +664,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
@@ -2461,13 +2462,14 @@ Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c
 Graph.prototype.zoom=function(a,c){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)};
 Graph.prototype.getTooltipForCell=function(a){var c="";if(mxUtils.isNode(a.value)){var d=a.value.getAttribute("tooltip");if(null!=d)null!=d&&this.isReplacePlaceholders(a)&&(d=this.replacePlaceholders(a,d)),c=this.sanitizeHtml(d);else{d=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&d.push("link");for(var f=0;f<a.length;f++)0>mxUtils.indexOf(d,a[f].nodeName)&&0<a[f].nodeValue.length&&b.push({name:a[f].nodeName,value:a[f].nodeValue});b.sort(function(a,b){return a.name<b.name?
 -1:a.name>b.name?1:0});for(f=0;f<b.length;f++)"link"==b[f].name&&this.isCustomLink(b[f].value)||(c+=("link"!=b[f].name?"<b>"+b[f].name+":</b> ":"")+mxUtils.htmlEntities(b[f].value)+"\n");0<c.length&&(c=c.substring(0,c.length-1),mxClient.IS_SVG&&(c='<div style="max-width:360px;">'+c+"</div>"))}}return c};Graph.prototype.stringToBytes=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=a.charCodeAt(d);return c};
-Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};
-Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";
-HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
-HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
-HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
-HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":
-IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
+Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};
+Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;
+HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";
+HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);
+HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);
+HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
+HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+
+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
 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(c){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||
@@ -3169,9 +3171,8 @@ c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&
 "right";var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();
 a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className=
 "geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),
-f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(b,null),a.editor.graph.openLink(a.getUrl());else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==
-f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(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;
+f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;
+(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(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"),r.setAttribute("disabled","true"),t.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),r.removeAttribute("disabled"),t.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}
 function d(){q.style.backgroundColor=q.value*r.value>MAX_AREA||0>=q.value?"red":"";r.style.backgroundColor=q.value*r.value>MAX_AREA||0>=r.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",
@@ -7163,17 +7164,18 @@ DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxU
 DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,c,d){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,c){};DrawioFile.prototype.saveFile=function(a,b,c,d){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
 DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,c){};DrawioFile.prototype.isMovable=function(){return!1};
 DrawioFile.prototype.move=function(a,b,c){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data};
-DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){var c=null!=b?b.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=c&&c.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||
-this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);
-this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)};
-DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))};
-DrawioFile.prototype.autosave=function(a,b,c,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=c&&c(a)}),
-mxUtils.bind(this,function(a){null!=d&&d(a)}))}else null!=c&&c(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 c=a.lastIndexOf("."),d=0<c?a.substring(c):"",c=b.lastIndexOf(".");return d===(0<c?b.substring(c):"")}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,c,d){DrawioFile.call(this,a,b);this.title=c;this.mode=d?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,c){this.saveAs(this.title,b,c)};LocalFile.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};
+DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,c){var b=null!=c?c.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",
+this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",
+this.changeListener)};
+DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null,
+0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))};
+DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()};
+DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):
+null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))};
+DrawioFile.prototype.autosave=function(a,b,c,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();var e=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==e&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();
+null!=c&&c(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=c&&c(null)}),a);this.autosaveThread=e};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 c=a.lastIndexOf("."),d=0<c?a.substring(c):"",c=b.lastIndexOf(".");return d===(0<c?b.substring(c):"")}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,c,d){DrawioFile.call(this,a,b);this.title=c;this.mode=d?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,c){this.saveAs(this.title,b,c)};LocalFile.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};
 LocalFile.prototype.saveFile=function(a,b,c,d){this.title=a;this.updateFileData();b=this.getData();var e=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),g=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,e?"image/png":"text/xml",e);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
 (e?"&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!=c&&c()});e?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){g(a)}),d,this.ui.getCurrentFile()!=this?this.getData():null):g(b)};LocalFile.prototype.rename=function(a,b,c){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)};LocalLibrary=function(a,b,c){LocalFile.call(this,a,b,c)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,b,c){DrawioFile.call(this,a,b);this.title=c};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title};
@@ -7181,282 +7183,282 @@ StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.sav
 StorageFile.prototype.saveFile=function(a,b,c,d){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!=c&&c()}))}catch(g){null!=d&&d(g)}});this.isRenamable()&&"."==a.charAt(0)&&null!=d?d({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,d):e()}))}else null!=c&&c()};StorageFile.prototype.rename=function(a,b,c){var d=this.getTitle();d!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(e){var g=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(d,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(d,b)}),c)});null!=e?this.ui.confirm(mxResources.get("replaceIt",[a]),g,c):g()})):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,c){StorageFile.call(this,a,b,c)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};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,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,c){StorageFile.call(this,a,b,c);a=c;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,c){return!1};UrlLibrary.prototype.saveAs=function(a,b,c){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,c){function d(d,e,g,t,w,u){function q(){mxEvent.addListener(v,"click",null!=u?u:function(){g!=App.MODE_GOOGLE||a.isDriveDomain()?g==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(g,f.checked);b()})):(a.setMode(g,f.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var v=document.createElement("a");v.style.overflow="hidden";v.style.display=
-mxClient.IS_QUIRKS?"inline":"inline-block";v.className="geBaseButton";v.style.boxSizing="border-box";v.style.fontSize="11px";v.style.position="relative";v.style.margin="4px";v.style.padding="8px 10px 12px 10px";v.style.width="88px";v.style.height="100px";v.style.whiteSpace="nowrap";v.setAttribute("title",e);mxClient.IS_QUIRKS&&(v.style.cssFloat="left",v.style.zoom="1");var x=document.createElement("div");x.style.textOverflow="ellipsis";x.style.overflow="hidden";if(null!=d){var p=document.createElement("img");
-p.setAttribute("src",d);p.setAttribute("border","0");p.setAttribute("align","absmiddle");p.style.width="60px";p.style.height="60px";p.style.paddingBottom="6px";v.appendChild(p)}else x.style.paddingTop="5px",x.style.whiteSpace="normal",mxClient.IS_IOS?(v.style.padding="0px 10px 20px 10px",v.style.top="6px"):mxClient.IS_FF&&(x.style.paddingTop="0px",x.style.marginTop="-2px");v.appendChild(x);mxUtils.write(x,e);if(null!=w)for(d=0;d<w.length;d++)mxUtils.br(x),mxUtils.write(x,w[d]);if(null!=t&&null==a[t]){p.style.visibility=
-"hidden";mxUtils.setOpacity(x,10);var l=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});l.spin(v);var m=window.setTimeout(function(){null==a[t]&&(l.stop(),v.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[t]&&(window.clearTimeout(m),mxUtils.setOpacity(x,100),p.style.visibility="",l.stop(),q(),"drive"==t&&null!=k.parentNode&&k.parentNode.removeChild(k))}))}else q();
-n.appendChild(v);++h>=c&&(mxUtils.br(n),h=0)}c=null!=c?c:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var g=a.addLanguageMenu(e,!0);null!=g&&(g.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://about.draw.io/support/");g.setAttribute("title",mxResources.get("help"));g.setAttribute("target","_blank");g.style.position=
-"absolute";g.style.textDecoration="none";g.style.cursor="pointer";g.style.fontSize="12px";g.style.bottom="28px";g.style.left="26px";g.style.color="gray";var l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("valign","bottom");l.setAttribute("src",Editor.helpImage);l.style.marginRight="2px";g.appendChild(l);mxUtils.write(g,mxResources.get("help"));e.appendChild(g)}var m=document.createElement("div");m.style.position="absolute";m.style.cursor="pointer";m.style.fontSize="12px";
-m.style.bottom="28px";m.style.color="gray";mxUtils.write(m,mxResources.get("decideLater"));a.isOfflineApp()?m.style.right="20px":(mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,0)"),m.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)m.style.marginLeft=-Math.round(m.clientWidth/2)+"px"};e.appendChild(m);mxEvent.addListener(m,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,
-!0);Editor.useLocalStorage=b});var n=document.createElement("div");mxClient.IS_QUIRKS&&(n.style.whiteSpace="nowrap",n.style.cssFloat="left");n.style.border="1px solid #d3d3d3";n.style.borderWidth="1px 0px 1px 0px";n.style.padding="12px 0px 12px 0px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("checked","checked");f.defaultChecked=!0;var h=0,k=document.createElement("p"),g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.paddingTop=
+StorageLibrary.prototype.isRenamable=function(a,b,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,c){StorageFile.call(this,a,b,c);a=c;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,c){return!1};UrlLibrary.prototype.saveAs=function(a,b,c){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,c){function d(d,e,g,t,w,u){function v(){mxEvent.addListener(p,"click",null!=u?u:function(){g!=App.MODE_GOOGLE||a.isDriveDomain()?g==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(g,f.checked);b()})):(a.setMode(g,f.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 x=document.createElement("div");x.style.textOverflow="ellipsis";x.style.overflow="hidden";if(null!=d){var q=document.createElement("img");
+q.setAttribute("src",d);q.setAttribute("border","0");q.setAttribute("align","absmiddle");q.style.width="60px";q.style.height="60px";q.style.paddingBottom="6px";p.appendChild(q)}else x.style.paddingTop="5px",x.style.whiteSpace="normal",mxClient.IS_IOS?(p.style.padding="0px 10px 20px 10px",p.style.top="6px"):mxClient.IS_FF&&(x.style.paddingTop="0px",x.style.marginTop="-2px");p.appendChild(x);mxUtils.write(x,e);if(null!=w)for(d=0;d<w.length;d++)mxUtils.br(x),mxUtils.write(x,w[d]);if(null!=t&&null==a[t]){q.style.visibility=
+"hidden";mxUtils.setOpacity(x,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(p);var l=window.setTimeout(function(){null==a[t]&&(k.stop(),p.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[t]&&(window.clearTimeout(l),mxUtils.setOpacity(x,100),q.style.visibility="",k.stop(),v(),"drive"==t&&null!=n.parentNode&&n.parentNode.removeChild(n))}))}else v();
+m.appendChild(p);++h>=c&&(mxUtils.br(m),h=0)}c=null!=c?c:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var g=a.addLanguageMenu(e,!0);null!=g&&(g.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://about.draw.io/support/");g.setAttribute("title",mxResources.get("help"));g.setAttribute("target","_blank");g.style.position=
+"absolute";g.style.textDecoration="none";g.style.cursor="pointer";g.style.fontSize="12px";g.style.bottom="28px";g.style.left="26px";g.style.color="gray";var k=document.createElement("img");k.setAttribute("border","0");k.setAttribute("valign","bottom");k.setAttribute("src",Editor.helpImage);k.style.marginRight="2px";g.appendChild(k);mxUtils.write(g,mxResources.get("help"));e.appendChild(g)}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,null,null,null,null,null,
+!0);Editor.useLocalStorage=b});var m=document.createElement("div");mxClient.IS_QUIRKS&&(m.style.whiteSpace="nowrap",m.style.cssFloat="left");m.style.border="1px solid #d3d3d3";m.style.borderWidth="1px 0px 1px 0px";m.style.padding="12px 0px 12px 0px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("checked","checked");f.defaultChecked=!0;var h=0,n=document.createElement("p"),g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.paddingTop=
 "4px";g.style.paddingBottom="16px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("saveDiagramsTo")+":");e.appendChild(g);"function"===typeof window.DriveClient&&d(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&d(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");mxClient.IS_IOS&&"device"!=urlParams.storage||d(IMAGE_PATH+"/osa_drive-harddisk.png",
-mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||d(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);e.appendChild(n);g=document.createElement("p");g.style.marginTop="12px";g.style.marginBottom="6px";g.appendChild(f);l=document.createElement("span");l.style.color="gray";l.style.fontSize="12px";mxUtils.write(l," "+mxResources.get("rememberThisSetting"));g.appendChild(l);mxUtils.br(g);var q=a.getRecent();if(null!=q&&
-0<q.length){var u=document.createElement("select");u.style.marginTop="8px";u.style.width="140px";var p=document.createElement("option");p.setAttribute("value","");p.setAttribute("selected","selected");p.style.textAlign="center";mxUtils.write(p,mxResources.get("openRecent")+"...");u.appendChild(p);for(p=0;p<q.length;p++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var c=document.createElement("option");c.setAttribute("value",a.id);mxUtils.write(c,
-a.title+" ("+mxResources.get(b)+")");u.appendChild(c)})(q[p]);g.appendChild(u);mxEvent.addListener(u,"change",function(b){""!=u.value&&a.loadFile(u.value)})}else g.style.marginTop="20px",n.style.padding="30px 0px 26px 0px";!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11||(q=document.createElement("div"),q.style.cursor="pointer",q.style.padding="18px 0px 6px 0px",q.style.fontSize="12px",q.style.color="gray",mxUtils.write(q,mxResources.get("import")+": "+mxResources.get("gliffy")+", "+mxResources.get("formatVssx")+
-", "+mxResources.get("formatVsdx")+", "+mxResources.get("lucidchart")+"..."),mxEvent.addListener(q,"click",function(){var b=document.createElement("input");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0))});b.click()}),g.appendChild(q),n.style.paddingBottom="4px");n.appendChild(g);mxEvent.addListener(l,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==
-document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&&(k.style.padding="8px",k.style.fontSize="9pt",k.style.marginTop="-14px",k.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://plus.google.com/u/0/+DrawIo1/posts/1HTrfsb5wDN" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",e.appendChild(k))},5E3);this.container=
+mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||d(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);e.appendChild(m);g=document.createElement("p");g.style.marginTop="12px";g.style.marginBottom="6px";g.appendChild(f);k=document.createElement("span");k.style.color="gray";k.style.fontSize="12px";mxUtils.write(k," "+mxResources.get("rememberThisSetting"));g.appendChild(k);mxUtils.br(g);var u=a.getRecent();if(null!=u&&
+0<u.length){var p=document.createElement("select");p.style.marginTop="8px";p.style.width="140px";var q=document.createElement("option");q.setAttribute("value","");q.setAttribute("selected","selected");q.style.textAlign="center";mxUtils.write(q,mxResources.get("openRecent")+"...");p.appendChild(q);for(q=0;q<u.length;q++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var c=document.createElement("option");c.setAttribute("value",a.id);mxUtils.write(c,
+a.title+" ("+mxResources.get(b)+")");p.appendChild(c)})(u[q]);g.appendChild(p);mxEvent.addListener(p,"change",function(b){""!=p.value&&a.loadFile(p.value)})}else g.style.marginTop="20px",m.style.padding="30px 0px 26px 0px";!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11||(u=document.createElement("div"),u.style.cursor="pointer",u.style.padding="18px 0px 6px 0px",u.style.fontSize="12px",u.style.color="gray",mxUtils.write(u,mxResources.get("import")+": "+mxResources.get("gliffy")+", "+mxResources.get("formatVssx")+
+", "+mxResources.get("formatVsdx")+", "+mxResources.get("lucidchart")+"..."),mxEvent.addListener(u,"click",function(){var b=document.createElement("input");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0))});b.click()}),g.appendChild(u),m.style.paddingBottom="4px");m.appendChild(g);mxEvent.addListener(k,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==
+document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&&(n.style.padding="8px",n.style.fontSize="9pt",n.style.marginTop="-14px",n.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://plus.google.com/u/0/+DrawIo1/posts/1HTrfsb5wDN" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",e.appendChild(n))},5E3);this.container=
 e},SplashDialog=function(a){var b=document.createElement("div");b.style.textAlign="center";a.addLanguageMenu(b,!0);var c=null,c=a.getServiceCount();if(!a.isOffline()&&1<c){c=document.createElement("a");c.setAttribute("href","https://about.draw.io/support/");c.setAttribute("title",mxResources.get("help"));c.setAttribute("target","_blank");c.style.position="absolute";c.style.fontSize="12px";c.style.textDecoration="none";c.style.cursor="pointer";c.style.bottom="22px";c.style.left="26px";c.style.color=
 "gray";var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign","bottom");d.setAttribute("src",Editor.helpImage);d.style.marginRight="2px";c.appendChild(d);mxUtils.write(c,mxResources.get("help"));b.appendChild(c)}c=document.createElement("p");c.style.fontSize="16pt";c.style.padding="0px";c.style.paddingTop="2px";c.style.margin="0px";c.style.color="gray";d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.width="40px";
 d.style.height="40px";d.style.marginRight="12px";d.style.paddingBottom="4px";var e="";a.mode==App.MODE_GOOGLE?(d.src=IMAGE_PATH+"/google-drive-logo.svg",e=mxResources.get("googleDrive")):a.mode==App.MODE_DROPBOX?(d.src=IMAGE_PATH+"/dropbox-logo.svg",e=mxResources.get("dropbox")):a.mode==App.MODE_ONEDRIVE?(d.src=IMAGE_PATH+"/onedrive-logo.svg",e=mxResources.get("oneDrive")):a.mode==App.MODE_GITHUB?(d.src=IMAGE_PATH+"/github-logo.svg",e=mxResources.get("github")):a.mode==App.MODE_TRELLO?(d.src=IMAGE_PATH+
-"/trello-logo.svg",e=mxResources.get("trello")):a.mode==App.MODE_BROWSER?(d.src=IMAGE_PATH+"/osa_database.png",e=mxResources.get("browser")):(d.src=IMAGE_PATH+"/osa_drive-harddisk.png",e=mxResources.get("device"));var g=document.createElement("div");g.style.margin="4px 0px 0px 0px";var l=document.createElement("button");l.className="geBigButton";l.style.overflow="hidden";l.style.width="340px";mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(g.style.padding="42px 0px 56px 0px",l.style.marginBottom="12px"):
-(c.appendChild(d),mxUtils.write(c,e),b.appendChild(c),g.style.border="1px solid #d3d3d3",g.style.borderWidth="1px 0px 1px 0px",g.style.padding="18px 0px 24px 0px",l.style.marginBottom="8px");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");mxClient.IS_QUIRKS&&(l.style.width="340px");mxUtils.write(l,mxResources.get("createNewDiagram"));mxEvent.addListener(l,"click",function(){a.hideDialog();a.actions.get("new").funct()});g.appendChild(l);mxUtils.br(g);l=document.createElement("button");
-l.className="geBigButton";l.style.marginBottom="22px";l.style.overflow="hidden";l.style.width="340px";mxClient.IS_QUIRKS&&(l.style.width="340px");mxUtils.write(l,mxResources.get("openExistingDiagram"));mxEvent.addListener(l,"click",function(){a.actions.get("open").funct()});g.appendChild(l);c="undefined";a.mode==App.MODE_GOOGLE?c=mxResources.get("googleDrive"):a.mode==App.MODE_DROPBOX?c=mxResources.get("dropbox"):a.mode==App.MODE_ONEDRIVE?c=mxResources.get("oneDrive"):a.mode==App.MODE_GITHUB?c=mxResources.get("github"):
-a.mode==App.MODE_TRELLO?c=mxResources.get("trello"):a.mode==App.MODE_DEVICE?c=mxResources.get("device"):a.mode==App.MODE_BROWSER&&(c=mxResources.get("browser"));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(e=function(b){l.style.marginBottom="24px";var c=document.createElement("a");c.setAttribute("href","javascript:void(0)");c.style.display="inline-block";c.style.marginTop="6px";mxUtils.write(c,mxResources.get("signOut"));l.style.marginBottom="16px";g.style.paddingBottom="18px";mxEvent.addListener(c,
-"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});g.appendChild(c)},d=null!=a.drive?a.drive.getUser():null,a.mode==App.MODE_GOOGLE&&null!=d?(l.style.marginBottom="24px",e=document.createElement("a"),e.setAttribute("href","javascript:void(0)"),e.style.display="inline-block",e.style.marginTop="6px",mxUtils.write(e,mxResources.get("changeUser")+" ("+d.displayName+")"),l.style.marginBottom="16px",g.style.paddingBottom="18px",mxEvent.addListener(e,"click",function(){a.hideDialog();
+"/trello-logo.svg",e=mxResources.get("trello")):a.mode==App.MODE_BROWSER?(d.src=IMAGE_PATH+"/osa_database.png",e=mxResources.get("browser")):(d.src=IMAGE_PATH+"/osa_drive-harddisk.png",e=mxResources.get("device"));var g=document.createElement("div");g.style.margin="4px 0px 0px 0px";var k=document.createElement("button");k.className="geBigButton";k.style.overflow="hidden";k.style.width="340px";mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(g.style.padding="42px 0px 56px 0px",k.style.marginBottom="12px"):
+(c.appendChild(d),mxUtils.write(c,e),b.appendChild(c),g.style.border="1px solid #d3d3d3",g.style.borderWidth="1px 0px 1px 0px",g.style.padding="18px 0px 24px 0px",k.style.marginBottom="8px");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("createNewDiagram"));mxEvent.addListener(k,"click",function(){a.hideDialog();a.actions.get("new").funct()});g.appendChild(k);mxUtils.br(g);k=document.createElement("button");
+k.className="geBigButton";k.style.marginBottom="22px";k.style.overflow="hidden";k.style.width="340px";mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("openExistingDiagram"));mxEvent.addListener(k,"click",function(){a.actions.get("open").funct()});g.appendChild(k);c="undefined";a.mode==App.MODE_GOOGLE?c=mxResources.get("googleDrive"):a.mode==App.MODE_DROPBOX?c=mxResources.get("dropbox"):a.mode==App.MODE_ONEDRIVE?c=mxResources.get("oneDrive"):a.mode==App.MODE_GITHUB?c=mxResources.get("github"):
+a.mode==App.MODE_TRELLO?c=mxResources.get("trello"):a.mode==App.MODE_DEVICE?c=mxResources.get("device"):a.mode==App.MODE_BROWSER&&(c=mxResources.get("browser"));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(e=function(b){k.style.marginBottom="24px";var c=document.createElement("a");c.setAttribute("href","javascript:void(0)");c.style.display="inline-block";c.style.marginTop="6px";mxUtils.write(c,mxResources.get("signOut"));k.style.marginBottom="16px";g.style.paddingBottom="18px";mxEvent.addListener(c,
+"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});g.appendChild(c)},d=null!=a.drive?a.drive.getUser():null,a.mode==App.MODE_GOOGLE&&null!=d?(k.style.marginBottom="24px",e=document.createElement("a"),e.setAttribute("href","javascript:void(0)"),e.style.display="inline-block",e.style.marginTop="6px",mxUtils.write(e,mxResources.get("changeUser")+" ("+d.displayName+")"),k.style.marginBottom="16px",g.style.paddingBottom="18px",mxEvent.addListener(e,"click",function(){a.hideDialog();
 a.drive.clearUserId();a.drive.setUser(null);gapi.auth.signOut();a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash();a.drive.authorize(!1,mxUtils.bind(this,mxUtils.bind(this,function(){a.hideDialog();a.showSplash()})),mxUtils.bind(this,function(b){a.handleError(b,null,function(){a.hideDialog();a.showSplash()})}))}),g.appendChild(e)):a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?e(function(){a.oneDrive.logout()}):a.mode==App.MODE_GITHUB&&null!=a.gitHub?e(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}):
 a.mode==App.MODE_TRELLO&&null!=a.trello?a.trello.isAuthorized()&&e(function(){a.trello.logout()}):a.mode==App.MODE_DROPBOX&&null!=a.dropbox&&e(function(){a.dropbox.logout();a.openLink("https://www.dropbox.com/logout")}),mxUtils.br(g),e=document.createElement("a"),e.setAttribute("href","javascript:void(0)"),e.style.display="inline-block",e.style.marginTop="8px",mxUtils.write(e,mxResources.get("notUsingService",[c])),mxEvent.addListener(e,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode();
-a.showSplash(!0)}),g.appendChild(e));b.appendChild(g);this.container=b},ConfirmDialog=function(a,b,c,d,e,g,l,m,n){var f=document.createElement("div");f.style.textAlign="center";var h=document.createElement("div");h.style.padding="6px";h.style.overflow="auto";h.style.maxHeight="44px";mxClient.IS_QUIRKS&&(h.style.height="60px");mxUtils.write(h,b);f.appendChild(h);h=document.createElement("div");h.style.textAlign="center";h.style.whiteSpace="nowrap";var k=document.createElement("input");k.setAttribute("type",
-"checkbox");g=mxUtils.button(g||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(k.checked)});g.className="geBtn";null!=m&&(g.innerHTML=m+"<br>"+g.innerHTML,g.style.paddingBottom="8px",g.style.paddingTop="8px",g.style.height="auto",g.style.width="40%");a.editor.cancelFirst&&h.appendChild(g);e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c(k.checked)});h.appendChild(e);null!=l?(e.innerHTML=l+"<br>"+e.innerHTML+"<br>",e.style.paddingBottom="8px",e.style.paddingTop=
-"8px",e.style.height="auto",e.className="geBtn",e.style.width="40%"):e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||h.appendChild(g);f.appendChild(h);n?(h.style.marginTop="10px",h=document.createElement("p"),h.style.marginTop="20px",h.appendChild(k),l=document.createElement("span"),mxUtils.write(l," "+mxResources.get("rememberThisSetting")),h.appendChild(l),f.appendChild(h),mxEvent.addListener(l,"click",function(a){k.checked=!k.checked;mxEvent.consume(a)})):h.style.marginTop="16px";this.container=
-f},EmbedDialog=function(a,b,c,d,e,g){d=document.createElement("div");var l=/^https?:\/\//.test(b)||/^mailto:\/\//.test(b);null!=g?mxUtils.write(d,g):mxUtils.write(d,mxResources.get(5E5>b.length?l?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(d);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px";g.style.color="gray";mxUtils.write(g,a.formatFileSize(b.length));d.appendChild(g);var m=document.createElement("textarea");m.setAttribute("autocomplete",
-"off");m.setAttribute("autocorrect","off");m.setAttribute("autocapitalize","off");m.setAttribute("spellcheck","false");m.style.marginTop="10px";m.style.resize="none";m.style.height="150px";m.style.width="440px";m.style.border="1px solid gray";m.value=mxResources.get("updatingDocument");d.appendChild(m);mxUtils.br(d);this.init=function(){window.setTimeout(function(){5E5>b.length?(m.value=b,m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",
-!1,null)):(m.setAttribute("readonly","true"),m.value=b.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};g=document.createElement("div");g.style.position="absolute";g.style.bottom="36px";g.style.right="32px";var n=null;!EmbedDialog.showPreviewOption||mxClient.IS_CHROMEAPP&&!l||navigator.standalone||!(l||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(n=mxUtils.button(mxResources.get(5E5>b.length?"preview":"openInNewWindow"),function(){var d=5E5>b.length?
-m.value:b;if(null!=e)e(d);else if(l)try{var f=a.openLink(d);null!=f&&(null==c||0<c)&&window.setTimeout(mxUtils.bind(this,function(){null!=f&&null!=f.location.href&&f.location.href.substring(0,8)!=d.substring(0,8)&&(f.close(),a.handleError({message:mxResources.get("drawingTooLarge")}))}),c||500)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}else{var h=window.open().document;h.writeln("<html><head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head><body>'+
-b+"</body></html>");h.close()}}),n.className="geBtn",g.appendChild(n));if(!l||7500<b.length){var f=mxUtils.button(mxResources.get("download"),function(){a.hideDialog();a.saveData("embed.txt","txt",b,"text/plain")});f.className="geBtn";g.appendChild(f)}if(l&&(!a.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>b.length){var h=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(m.value);a.openLink(b)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}}),
+a.showSplash(!0)}),g.appendChild(e));b.appendChild(g);this.container=b},ConfirmDialog=function(a,b,c,d,e,g,k,l,m){var f=document.createElement("div");f.style.textAlign="center";var h=document.createElement("div");h.style.padding="6px";h.style.overflow="auto";h.style.maxHeight="44px";mxClient.IS_QUIRKS&&(h.style.height="60px");mxUtils.write(h,b);f.appendChild(h);h=document.createElement("div");h.style.textAlign="center";h.style.whiteSpace="nowrap";var n=document.createElement("input");n.setAttribute("type",
+"checkbox");g=mxUtils.button(g||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(n.checked)});g.className="geBtn";null!=l&&(g.innerHTML=l+"<br>"+g.innerHTML,g.style.paddingBottom="8px",g.style.paddingTop="8px",g.style.height="auto",g.style.width="40%");a.editor.cancelFirst&&h.appendChild(g);e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c(n.checked)});h.appendChild(e);null!=k?(e.innerHTML=k+"<br>"+e.innerHTML+"<br>",e.style.paddingBottom="8px",e.style.paddingTop=
+"8px",e.style.height="auto",e.className="geBtn",e.style.width="40%"):e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||h.appendChild(g);f.appendChild(h);m?(h.style.marginTop="10px",h=document.createElement("p"),h.style.marginTop="20px",h.appendChild(n),k=document.createElement("span"),mxUtils.write(k," "+mxResources.get("rememberThisSetting")),h.appendChild(k),f.appendChild(h),mxEvent.addListener(k,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)})):h.style.marginTop="16px";this.container=
+f},EmbedDialog=function(a,b,c,d,e,g){d=document.createElement("div");var k=/^https?:\/\//.test(b)||/^mailto:\/\//.test(b);null!=g?mxUtils.write(d,g):mxUtils.write(d,mxResources.get(5E5>b.length?k?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(d);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px";g.style.color="gray";mxUtils.write(g,a.formatFileSize(b.length));d.appendChild(g);var l=document.createElement("textarea");l.setAttribute("autocomplete",
+"off");l.setAttribute("autocorrect","off");l.setAttribute("autocapitalize","off");l.setAttribute("spellcheck","false");l.style.marginTop="10px";l.style.resize="none";l.style.height="150px";l.style.width="440px";l.style.border="1px solid gray";l.value=mxResources.get("updatingDocument");d.appendChild(l);mxUtils.br(d);this.init=function(){window.setTimeout(function(){5E5>b.length?(l.value=b,l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",
+!1,null)):(l.setAttribute("readonly","true"),l.value=b.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};g=document.createElement("div");g.style.position="absolute";g.style.bottom="36px";g.style.right="32px";var m=null;!EmbedDialog.showPreviewOption||mxClient.IS_CHROMEAPP&&!k||navigator.standalone||!(k||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(m=mxUtils.button(mxResources.get(5E5>b.length?"preview":"openInNewWindow"),function(){var d=5E5>b.length?
+l.value:b;if(null!=e)e(d);else if(k)try{var f=a.openLink(d);null!=f&&(null==c||0<c)&&window.setTimeout(mxUtils.bind(this,function(){null!=f&&null!=f.location.href&&f.location.href.substring(0,8)!=d.substring(0,8)&&(f.close(),a.handleError({message:mxResources.get("drawingTooLarge")}))}),c||500)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}else{var h=window.open().document;h.writeln("<html><head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head><body>'+
+b+"</body></html>");h.close()}}),m.className="geBtn",g.appendChild(m));if(!k||7500<b.length){var f=mxUtils.button(mxResources.get("download"),function(){a.hideDialog();a.saveData("embed.txt","txt",b,"text/plain")});f.className="geBtn";g.appendChild(f)}if(k&&(!a.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>b.length){var h=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(l.value);a.openLink(b)}catch(u){a.handleError({message:u.message||mxResources.get("drawingTooLarge")})}}),
 f=document.createElement("img");f.setAttribute("src",Editor.facebookImage);f.setAttribute("width","18");f.setAttribute("height","18");f.setAttribute("border","0");h.appendChild(f);h.setAttribute("title",mxResources.get("facebook")+" ("+a.formatFileSize(51200)+" max)");h.style.verticalAlign="bottom";h.style.paddingTop="4px";h.style.minWidth="46px";h.className="geBtn";g.appendChild(h)}7168>b.length&&(h=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+
-"&url="+encodeURIComponent(m.value);a.openLink(b)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border","0"),f.style.marginBottom="5px",h.appendChild(f),h.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),h.style.verticalAlign="bottom",h.style.paddingTop="4px",h.style.minWidth="46px",
-h.className="geBtn",g.appendChild(h))}f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(f);h=mxUtils.button(mxResources.get("copy"),function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>b.length?mxClient.IS_SF||null!=document.documentMode?f.className="geBtn gePrimaryBtn":(g.appendChild(h),
-h.className="geBtn gePrimaryBtn",f.className="geBtn"):(g.appendChild(n),f.className="geBtn",n.className="geBtn gePrimaryBtn");d.appendChild(g);this.container=d};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(a,b){function c(){var a=null!=z.getTitle()?z.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);""!=k.value&&(b+="&height="+k.value);b+="&pan="+(p.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(w.checked?"1":"0");b+="&resize="+
-(t.checked?"1":"0");b+="&x0="+Number(h.value);b+="&y0="+n;e.mathEnabled&&(b+="&math=1");A.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));f.value=b}else z.constructor==DriveFile||z.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=z.getHash().substring(1),b=z.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+
-encodeURIComponent(a)),""!=k.value&&(a=parseInt(k.value)+parseInt(h.value),b+="&height="+a),f.value=b):f.value=""}var d=document.createElement("div"),e=a.editor.graph,g=e.getGraphBounds(),l=e.view.scale,m=Math.floor(g.x/l-e.view.translate.x),n=Math.floor(g.y/l-e.view.translate.y);mxUtils.write(d,mxResources.get("googleGadget")+":");mxUtils.br(d);var f=document.createElement("input");f.setAttribute("type","text");f.style.marginBottom="8px";f.style.marginTop="2px";f.style.width="410px";d.appendChild(f);
-mxUtils.br(d);this.init=function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)};mxUtils.write(d,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.setAttribute("size","4");h.style.marginRight="16px";h.style.marginLeft="4px";h.value=m;d.appendChild(h);mxUtils.write(d,mxResources.get("height")+":");var k=document.createElement("input");k.setAttribute("type",
-"text");k.setAttribute("size","4");k.style.marginLeft="4px";k.value=Math.ceil(g.height/l);d.appendChild(k);mxUtils.br(d);g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";d.appendChild(g);mxUtils.write(d,mxResources.get("publicDiagramUrl")+":");mxUtils.br(d);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";q.value=b||"";
-d.appendChild(q);mxUtils.br(d);mxUtils.write(d,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";d.appendChild(u);mxUtils.br(d);var p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="16px";d.appendChild(p);mxUtils.write(d,mxResources.get("pan")+" ");var v=document.createElement("input");
-v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";d.appendChild(v);mxUtils.write(d,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);d.appendChild(y);mxUtils.write(d,mxResources.get("edit")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";d.appendChild(A);mxUtils.write(d,
+"&url="+encodeURIComponent(l.value);a.openLink(b)}catch(u){a.handleError({message:u.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border","0"),f.style.marginBottom="5px",h.appendChild(f),h.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),h.style.verticalAlign="bottom",h.style.paddingTop="4px",h.style.minWidth="46px",
+h.className="geBtn",g.appendChild(h))}f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(f);h=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?f.className="geBtn gePrimaryBtn":(g.appendChild(h),
+h.className="geBtn gePrimaryBtn",f.className="geBtn"):(g.appendChild(m),f.className="geBtn",m.className="geBtn gePrimaryBtn");d.appendChild(g);this.container=d};EmbedDialog.showPreviewOption=!0;
+var GoogleSitesDialog=function(a,b){function c(){var a=null!=z.getTitle()?z.getTitle():this.defaultFilename;if(x.checked&&""!=u.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(u.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<C.length&&(b+="&s="+C);""!=p.value&&"0"!=p.value&&(b+="&border="+p.value);""!=n.value&&(b+="&height="+n.value);b+="&pan="+(q.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(w.checked?"1":"0");b+="&resize="+
+(t.checked?"1":"0");b+="&x0="+Number(h.value);b+="&y0="+m;e.mathEnabled&&(b+="&math=1");B.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));f.value=b}else z.constructor==DriveFile||z.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=u.value?b+=encodeURIComponent(mxUtils.htmlEntities(u.value))+"&type=3":(b+=z.getHash().substring(1),b=z.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+
+encodeURIComponent(a)),""!=n.value&&(a=parseInt(n.value)+parseInt(h.value),b+="&height="+a),f.value=b):f.value=""}var d=document.createElement("div"),e=a.editor.graph,g=e.getGraphBounds(),k=e.view.scale,l=Math.floor(g.x/k-e.view.translate.x),m=Math.floor(g.y/k-e.view.translate.y);mxUtils.write(d,mxResources.get("googleGadget")+":");mxUtils.br(d);var f=document.createElement("input");f.setAttribute("type","text");f.style.marginBottom="8px";f.style.marginTop="2px";f.style.width="410px";d.appendChild(f);
+mxUtils.br(d);this.init=function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)};mxUtils.write(d,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.setAttribute("size","4");h.style.marginRight="16px";h.style.marginLeft="4px";h.value=l;d.appendChild(h);mxUtils.write(d,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type",
+"text");n.setAttribute("size","4");n.style.marginLeft="4px";n.value=Math.ceil(g.height/k);d.appendChild(n);mxUtils.br(d);g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";d.appendChild(g);mxUtils.write(d,mxResources.get("publicDiagramUrl")+":");mxUtils.br(d);var u=document.createElement("input");u.setAttribute("type","text");u.setAttribute("size","28");u.style.marginBottom="8px";u.style.marginTop="2px";u.style.width="410px";u.value=b||"";
+d.appendChild(u);mxUtils.br(d);mxUtils.write(d,mxResources.get("borderWidth")+":");var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","3");p.style.marginBottom="8px";p.style.marginLeft="4px";p.value="0";d.appendChild(p);mxUtils.br(d);var q=document.createElement("input");q.setAttribute("type","checkbox");q.setAttribute("checked","checked");q.defaultChecked=!0;q.style.marginLeft="16px";d.appendChild(q);mxUtils.write(d,mxResources.get("pan")+" ");var v=document.createElement("input");
+v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";d.appendChild(v);mxUtils.write(d,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);d.appendChild(y);mxUtils.write(d,mxResources.get("edit")+" ");var B=document.createElement("input");B.setAttribute("type","checkbox");B.style.marginLeft="8px";d.appendChild(B);mxUtils.write(d,
 mxResources.get("asNew")+" ");mxUtils.br(d);var t=document.createElement("input");t.setAttribute("type","checkbox");t.setAttribute("checked","checked");t.defaultChecked=!0;t.style.marginLeft="16px";d.appendChild(t);mxUtils.write(d,mxResources.get("resize")+" ");var w=document.createElement("input");w.setAttribute("type","checkbox");w.style.marginLeft="8px";d.appendChild(w);mxUtils.write(d,mxResources.get("fit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft=
-"8px";d.appendChild(x);mxUtils.write(d,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),z=a.getCurrentFile();mxEvent.addListener(p,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(A,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(k,"change",c);mxEvent.addListener(h,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(q,"change",c);c();
-mxEvent.addListener(f,"click",function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";l=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});l.className="geBtn gePrimaryBtn";g.appendChild(l);d.appendChild(g);this.container=d},CreateGraphDialog=function(a,b,c){var d=document.createElement("div");d.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);d.appendChild(b);var g=new Graph(b);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var l="curved=1;";g.cellRenderer.installCellOverlayListeners=
+"8px";d.appendChild(x);mxUtils.write(d,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),z=a.getCurrentFile();mxEvent.addListener(q,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(B,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(h,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(u,"change",c);c();
+mxEvent.addListener(f,"click",function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn gePrimaryBtn";g.appendChild(k);d.appendChild(g);this.container=d},CreateGraphDialog=function(a,b,c){var d=document.createElement("div");d.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);d.appendChild(b);var g=new Graph(b);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var k="curved=1;";g.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))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop=
-!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,null,null,null,l);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var m=g.getDefaultParent(),n=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){g.connectionHandler.reset();g.clearSelection();var d=g.getCellGeometry(a),f;k(function(){f=g.insertVertex(m,null,"Entry",d.x,d.y,80,30,"rounded=1;");n(f);g.view.refresh(f);
-g.insertEdge(m,null,"",a,f,l)},function(){g.scrollCellToVisible(f)})});b.addListener("pointerdown",function(a,b){var c=b.getProperty("event"),d=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var f=mxUtils.convertPoint(g.container,mxEvent.getClientX(c),mxEvent.getClientY(c));g.connectionHandler.start(d,f.x,f.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(c);mxEvent.consume(c)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var f;try{f=g.insertVertex(m,null,"Start",
-0,0,80,30,"ellipse"),n(f)}finally{g.getModel().endUpdate()}var h;"horizontalTree"==c?(h=new mxCompactTreeLayout(g),h.edgeRouting=!1,h.levelDistance=30,l="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==c?(h=new mxCompactTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=30,l="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==c?(h=new mxRadialTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=80):"verticalFlow"==c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
-c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==c?(h=new mxFastOrganicLayout(g,!1),h.forceConstant=80):"circle"==c&&(h=new mxCircleLayout(g));if(null!=h){var k=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),h.execute(g.getDefaultParent(),f)}catch(t){throw t;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},q=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
-function(a,b,c,d,f){q.apply(this,arguments);k()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);k()};g.connectionHandler.addListener(mxEvent.CONNECT,function(){k()})}var u=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()})});u.className="geBtn";a.editor.cancelFirst&&d.appendChild(u);var p=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays();
-var c=a.editor.graph.getFreeInsertPoint(),c=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),c.x,c.y),d=a.editor.graph.view,f=d.getBounds(c);f.x-=d.translate.x;f.y-=d.translate.y;a.editor.graph.scrollRectToVisible(f);a.editor.graph.setSelectionCells(c);null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()});d.appendChild(p);p.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(u)};this.container=d};
+!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,null,null,null,k);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var l=g.getDefaultParent(),m=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){g.connectionHandler.reset();g.clearSelection();var d=g.getCellGeometry(a),f;n(function(){f=g.insertVertex(l,null,"Entry",d.x,d.y,80,30,"rounded=1;");m(f);g.view.refresh(f);
+g.insertEdge(l,null,"",a,f,k)},function(){g.scrollCellToVisible(f)})});b.addListener("pointerdown",function(a,b){var c=b.getProperty("event"),d=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var f=mxUtils.convertPoint(g.container,mxEvent.getClientX(c),mxEvent.getClientY(c));g.connectionHandler.start(d,f.x,f.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(c);mxEvent.consume(c)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var f;try{f=g.insertVertex(l,null,"Start",
+0,0,80,30,"ellipse"),m(f)}finally{g.getModel().endUpdate()}var h;"horizontalTree"==c?(h=new mxCompactTreeLayout(g),h.edgeRouting=!1,h.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==c?(h=new mxCompactTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==c?(h=new mxRadialTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=80):"verticalFlow"==c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"==
+c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==c?(h=new mxFastOrganicLayout(g,!1),h.forceConstant=80):"circle"==c&&(h=new mxCircleLayout(g));if(null!=h){var n=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),h.execute(g.getDefaultParent(),f)}catch(t){throw t;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},u=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect=
+function(a,b,c,d,f){u.apply(this,arguments);n()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);n()};g.connectionHandler.addListener(mxEvent.CONNECT,function(){n()})}var p=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()})});p.className="geBtn";a.editor.cancelFirst&&d.appendChild(p);var q=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays();
+var c=a.editor.graph.getFreeInsertPoint(),c=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),c.x,c.y),d=a.editor.graph.view,f=d.getBounds(c);f.x-=d.translate.x;f.y-=d.translate.y;a.editor.graph.scrollRectToVisible(f);a.editor.graph.setSelectionCells(c);null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(p)};this.container=d};
 CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg==":
 IMAGE_PATH+"/handle-connect.png",26,26);
 var BackgroundImageDialog=function(a,b){var c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h2");mxUtils.write(d,mxResources.get("backgroundImage"));d.style.marginTop="0px";c.appendChild(d);mxUtils.write(c,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(c);var d=a.editor.graph.backgroundImage,e=document.createElement("input");e.setAttribute("type","text");e.style.marginTop="4px";e.style.marginBottom="4px";e.style.width="350px";e.value=
-null!=d?d.src:"";var g=!1,l=function(){g||""==e.value||a.isOffline()?(m.value="",n.value=""):a.loadImage(mxUtils.trim(e.value),function(a){m.value=a.width;n.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));e.value="";m.value="";n.value=""})};this.init=function(){e.focus();if(Graph.fileSupport){e.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=c.parentNode,d=null;mxEvent.addListener(b,"dragleave",function(a){null!=
-d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,c,d,f,h){e.value=a;l()},function(){},
-function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(e.value=decodeURIComponent(c),l())}b.stopPropagation();b.preventDefault()}),!1)}};c.appendChild(e);mxUtils.br(c);mxUtils.br(c);mxUtils.write(c,mxResources.get("width")+":");var m=document.createElement("input");
-m.setAttribute("type","text");m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="16px";m.value=null!=d?d.width:"";c.appendChild(m);mxUtils.write(c,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="16px";n.value=null!=d?d.height:"";c.appendChild(n);d=mxUtils.button(mxResources.get("reset"),function(){e.value="";m.value="";n.value="";g=!1});mxEvent.addListener(d,"mousedown",
-function(){g=!0});mxEvent.addListener(d,"touchstart",function(){g=!0});d.className="geBtn";d.width="100";c.appendChild(d);mxUtils.br(c);mxEvent.addListener(e,"change",l);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(e.value=a.url,l()));e.focus()};d=document.createElement("div");d.style.marginTop="40px";d.style.textAlign="right";var f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
+null!=d?d.src:"";var g=!1,k=function(){g||""==e.value||a.isOffline()?(l.value="",m.value=""):a.loadImage(mxUtils.trim(e.value),function(a){l.value=a.width;m.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));e.value="";l.value="";m.value=""})};this.init=function(){e.focus();if(Graph.fileSupport){e.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=c.parentNode,d=null;mxEvent.addListener(b,"dragleave",function(a){null!=
+d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,c,d,f,h){e.value=a;k()},function(){},
+function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(e.value=decodeURIComponent(c),k())}b.stopPropagation();b.preventDefault()}),!1)}};c.appendChild(e);mxUtils.br(c);mxUtils.br(c);mxUtils.write(c,mxResources.get("width")+":");var l=document.createElement("input");
+l.setAttribute("type","text");l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="16px";l.value=null!=d?d.width:"";c.appendChild(l);mxUtils.write(c,mxResources.get("height")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="16px";m.value=null!=d?d.height:"";c.appendChild(m);d=mxUtils.button(mxResources.get("reset"),function(){e.value="";l.value="";m.value="";g=!1});mxEvent.addListener(d,"mousedown",
+function(){g=!0});mxEvent.addListener(d,"touchstart",function(){g=!0});d.className="geBtn";d.width="100";c.appendChild(d);mxUtils.br(c);mxEvent.addListener(e,"change",k);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(e.value=a.url,k()));e.focus()};d=document.createElement("div");d.style.marginTop="40px";d.style.textAlign="right";var f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
 f.className="geBtn";a.editor.cancelFirst&&d.appendChild(f);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top){var h=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)});
 h.className="geBtn";d.appendChild(h);null!=a.drive&&"1"==urlParams.photos&&(h=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)}))}),h.className="geBtn",d.appendChild(h))}h=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b(""!=e.value?new mxImage(mxUtils.trim(e.value),m.value,n.value):null)});h.className="geBtn gePrimaryBtn";d.appendChild(h);a.editor.cancelFirst||d.appendChild(f);c.appendChild(d);this.container=c},ParseDialog=function(a,b,c){function d(b,c){var d=b.split("\n");if("plantUmlPng"==c||"plantUmlSvg"==
-c||"plantUmlTxt"==c){var d="plantUmlTxt"==c?PLANT_URL+"/txt/":"plantUmlPng"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/",f=a.editor.graph;if(a.spinner.spin(document.body,mxResources.get("inserting"))){var h=function(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"},e=function(a,b,d){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|d>>6;c4=d&63;r="";r+=h(c1&63);r+=h(c2&63);r+=h(c3&63);return r+=
-h(c4&63)},k=new XMLHttpRequest;k.open("GET",d+function(a){r="";for(q=0;q<a.length;q+=3)r=q+2==a.length?r+e(a.charCodeAt(q),a.charCodeAt(q+1),0):q+1==a.length?r+e(a.charCodeAt(q),0,0):r+e(a.charCodeAt(q),a.charCodeAt(q+1),a.charCodeAt(q+2));return r}(f.bytesToString(pako.deflateRaw(unescape(encodeURIComponent(b))))),!0);"plantUmlTxt"!=c&&(k.responseType="blob");k.onload=function(d){if(200<=this.status&&300>this.status)if("plantUmlTxt"==c)a.spinner.stop(),f.setSelectionCell(a.insertAsPreText(this.response,
-g.x,g.y)),f.scrollCellToVisible(f.getSelectionCell());else{var h=new FileReader;h.readAsDataURL(this.response);h.onloadend=function(d){var c=new Image;c.onload=function(){a.spinner.stop();var d=c.width,k=c.height;if(0==d&&0==k){var e=h.result,w=e.indexOf(","),e=decodeURIComponent(escape(atob(e.substring(w+1)))),e=mxUtils.parseXml(e).getElementsByTagName("svg");0<e.length&&(d=parseFloat(e[0].getAttribute("width")),k=parseFloat(e[0].getAttribute("height")))}f.getModel().beginUpdate();try{cell=f.insertVertex(null,
-null,b,g.x,g.y,d,k,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(h.result)+";")}finally{f.getModel().endUpdate()}f.setSelectionCell(cell);f.scrollCellToVisible(f.getSelectionCell())};c.src=h.result};h.onerror=function(b){a.handleError(b)}}else a.spinner.stop(),a.handleError(d)};k.onerror=function(b){a.handleError(b)};k.send()}}else if("table"==c){for(var w=null,x=[],u=0,q=0;q<d.length;q++)if(k=mxUtils.trim(d[q]),"create table"==k.substring(0,12).toLowerCase())k=
-mxUtils.trim(k.substring(12)),"("==k.charAt(k.length-1)&&(k=k.substring(0,k.lastIndexOf(" "))),w=new mxCell(k,new mxGeometry(u,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;"),w.vertex=!0,x.push(w),k=a.editor.graph.getPreferredSizeForCell(m),null!=k&&(w.geometry.width=k.width+10);else if(null!=w&&")"==k.charAt(0))u+=w.geometry.width+
-40,w=null;else if("("!=k&&null!=w&&(k=k.substring(0,","==k.charAt(k.length-1)?k.length-1:k.length),"primary key"!=k.substring(0,11).toLowerCase())){var l=k.toLowerCase().indexOf("primary key"),k=k.replace(/primary key/i,""),m=new mxCell(k,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;");m.vertex=
-!0;k=sb.cloneCell(m,0<l?"PK":"");k.connectable=!1;k.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;";k.geometry.width=30;k.geometry.height=26;m.insert(k);k=a.editor.graph.getPreferredSizeForCell(m);null!=k&&w.geometry.width<k.width+10&&(w.geometry.width=Math.min(220,k.width+10));w.insert(m);w.geometry.height+=26}0<x.length&&(f=a.editor.graph,d=f.view,
-k=f.getGraphBounds(),f.setSelectionCells(f.importCells(x,Math.ceil(Math.max(0,k.x/d.scale-d.translate.x)+4*f.gridSize),Math.ceil(Math.max(0,(k.y+k.height)/d.scale-d.translate.y)+4*f.gridSize))),f.scrollCellToVisible(f.getSelectionCell()))}else if("list"==c){if(0<d.length){f=a.editor.graph;w=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;");
-w.vertex=!0;k=f.getPreferredSizeForCell(w);null!=k&&w.geometry.width<k.width+10&&(w.geometry.width=k.width+10);m=[w];if(1<d.length)for(q=1;q<d.length;q++)"--"==d[q]?(k=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;"),k.vertex=!0,w.geometry.height+=k.geometry.height,w.insert(k),m.push(k)):0<d[q].length&&";"!=d[q].charAt(0)&&(u=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;"),u.vertex=!0,k=f.getPreferredSizeForCell(u),null!=k&&u.geometry.width<k.width&&(u.geometry.width=k.width),w.geometry.width=Math.max(w.geometry.width,u.geometry.width),w.geometry.height+=u.geometry.height,w.insert(u),m.push(u));f.getModel().beginUpdate();try{w=f.importCells([w],g.x,g.y)[0],f.fireEvent(new mxEventObject("cellsInserted",
-"cells",[w].concat(w.children)))}finally{f.getModel().endUpdate()}f.setSelectionCell(w);f.scrollCellToVisible(f.getSelectionCell())}}else{for(var m=function(a){var b=n[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,n[a]=b,x.push(b));return b},n={},x=[],q=0;q<d.length;q++)if(";"!=d[q].charAt(0)){var I=d[q].split("->");2<=I.length&&(u=m(I[0]),l=m(I[I.length-1]),I=new mxCell(2<I.length?I[1]:"",new mxGeometry),I.edge=!0,u.insertEdge(I,!0),l.insertEdge(I,!1),
-x.push(I))}if(0<x.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);f=new Graph(d);f.getModel().beginUpdate();try{x=f.importCells(x);for(q=0;q<x.length;q++)f.getModel().isVertex(x[q])&&(k=f.getPreferredSizeForCell(x[q]),x[q].geometry.width=Math.max(x[q].geometry.width,k.width),x[q].geometry.height=Math.max(x[q].geometry.height,k.height));w=new mxFastOrganicLayout(f);w.disableEdgeStyle=!1;w.forceConstant=120;w.execute(f.getDefaultParent())}finally{f.getModel().endUpdate()}f.clearCellOverlays();
-m=[];a.editor.graph.getModel().beginUpdate();try{m=a.editor.graph.importCells(f.getModel().getChildren(f.getDefaultParent()),g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(m);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());f.destroy();d.parentNode.removeChild(d)}}}function e(){return"list"==m.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":
-"table"==m.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==m.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"==m.value||"plantUmlTxt"==m.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();b=document.createElement("div");b.style.textAlign="right";var l=document.createElement("textarea");l.style.resize="none";l.style.width="100%";l.style.height=
-"354px";l.style.marginBottom="16px";var m=document.createElement("select");"formatSql"==c&&(m.style.display="none");var n=document.createElement("option");n.setAttribute("value","list");mxUtils.write(n,mxResources.get("list"));"plantUml"!=c&&m.appendChild(n);null!=c&&"fromText"!=c||n.setAttribute("selected","selected");n=document.createElement("option");n.setAttribute("value","table");mxUtils.write(n,mxResources.get("formatSql"));"formatSql"==c&&(m.appendChild(n),n.setAttribute("selected","selected"));
-n=document.createElement("option");n.setAttribute("value","diagram");mxUtils.write(n,mxResources.get("diagram"));"plantUml"!=c&&m.appendChild(n);n=document.createElement("option");n.setAttribute("value","plantUmlSvg");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==c&&n.setAttribute("selected","selected");var f=document.createElement("option");f.setAttribute("value","plantUmlPng");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+
-")");var h=document.createElement("option");h.setAttribute("value","plantUmlTxt");mxUtils.write(h,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(m.appendChild(n),m.appendChild(f),m.appendChild(h));var k=e();l.value=k;b.appendChild(l);this.init=function(){l.focus()};Graph.fileSupport&&(l.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),l.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){l.value=a.target.result};b.readAsText(a)}},!1));b.appendChild(m);mxEvent.addListener(m,"change",function(){var a=e();if(0==l.value.length||l.value==k)k=a,l.value=k});c=mxUtils.button(mxResources.get("close"),function(){l.value==k?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);n=mxUtils.button(mxResources.get("insert"),
-function(){a.hideDialog();d(l.value,m.value)});b.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(c);this.container=b},NewDialog=function(a,b,c,d,e,g,l,m,n,f,h,k,q,u,p){function v(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],t(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function y(){if(aa)c||a.hideDialog(),u(aa,Z,F.value);else if(d)c||a.hideDialog(),d(P,F.value);else{var b=F.value;null!=b&&
-0<b.length&&a.pickFolder(a.mode,function(d){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,d)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function A(a,b,d,c,f){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");G.removeAttribute("disabled");P=b;T=d;S=a;aa=c;Z=f;S.style.backgroundColor=m;S.style.border=n}function t(b,d,c,f,h,k,e,w,g){var t=document.createElement("div");t.className="geTemplate";t.style.height=
-Q+"px";t.style.width=L+"px";null!=f&&0<f.length&&t.setAttribute("title",f);if(null!=k)t.style.backgroundImage="url("+k+")",t.style.backgroundSize="contain",t.style.backgroundPosition="center center",t.style.backgroundRepeat="no-repeat",mxEvent.addListener(t,"click",function(a){A(t,null,null,b,e)}),mxEvent.addListener(t,"dblclick",function(a){y()});else if(null!=b&&0<b.length){c=g||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";t.style.backgroundImage="url("+c+")";t.style.backgroundPosition="center center";
-t.style.backgroundRepeat="no-repeat";var q=!1;mxEvent.addListener(t,"click",function(c){G.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";t.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(A(t,a.getText(),d),q&&y())}))});mxEvent.addListener(t,"dblclick",function(a){q=!0})}else t.innerHTML=
-'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",h&&A(t),null!=w?mxEvent.addListener(t,"click",w):(mxEvent.addListener(t,"click",function(a){A(t)}),mxEvent.addListener(t,"dblclick",function(a){y()}));N.appendChild(t)}function w(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in U){var c=document.createElement("div"),d=mxResources.get(b),h=U[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+" ("+h.length+")");mxUtils.write(c,c.getAttribute("title"));null!=f&&(c.style.padding=f);Y.appendChild(c);null==a&&(a=c,a.style.backgroundColor=l);(function(b,d){mxEvent.addListener(c,"click",function(){a!=d&&(a.style.backgroundColor="",a=d,
-a.style.backgroundColor=l,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],B=null,v())})})(b,c)}v()}c=null!=c?c:!0;e=null!=e?e:!1;l=null!=l?l:"#ebf2f9";m=null!=m?m:"#e6eff8";n=null!=n?n:"1px solid #ccd9ea";h=null!=h?h:EditorUi.templateFile;var x=document.createElement("div");x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";c&&x.appendChild(C);var z=document.createElement("img");z.setAttribute("border","0");z.setAttribute("align","absmiddle");z.style.width=
+a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),h.className="geBtn",d.appendChild(h))}h=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b(""!=e.value?new mxImage(mxUtils.trim(e.value),l.value,m.value):null)});h.className="geBtn gePrimaryBtn";d.appendChild(h);a.editor.cancelFirst||d.appendChild(f);c.appendChild(d);this.container=c},ParseDialog=function(a,b,c){function d(b,c){var d=b.split("\n");if("plantUmlPng"==c||"plantUmlSvg"==
+c||"plantUmlTxt"==c){var d="plantUmlTxt"==c?PLANT_URL+"/txt/":"plantUmlPng"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/",f=a.editor.graph;if(a.spinner.spin(document.body,mxResources.get("inserting"))){var h=function(a){if(10>a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"},e=function(a,b,c){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|c>>6;c4=c&63;r="";r+=h(c1&63);r+=h(c2&63);r+=h(c3&63);return r+=
+h(c4&63)},n=new XMLHttpRequest;n.open("GET",d+function(a){r="";for(p=0;p<a.length;p+=3)r=p+2==a.length?r+e(a.charCodeAt(p),a.charCodeAt(p+1),0):p+1==a.length?r+e(a.charCodeAt(p),0,0):r+e(a.charCodeAt(p),a.charCodeAt(p+1),a.charCodeAt(p+2));return r}(f.bytesToString(pako.deflateRaw(unescape(encodeURIComponent(b))))),!0);"plantUmlTxt"!=c&&(n.responseType="blob");n.onload=function(d){if(200<=this.status&&300>this.status)if("plantUmlTxt"==c)a.spinner.stop(),f.setSelectionCell(a.insertAsPreText(this.response,
+g.x,g.y)),f.scrollCellToVisible(f.getSelectionCell());else{var h=new FileReader;h.readAsDataURL(this.response);h.onloadend=function(c){var d=new Image;d.onload=function(){a.spinner.stop();var c=d.width,n=d.height;if(0==c&&0==n){var e=h.result,w=e.indexOf(","),e=decodeURIComponent(escape(atob(e.substring(w+1)))),e=mxUtils.parseXml(e).getElementsByTagName("svg");0<e.length&&(c=parseFloat(e[0].getAttribute("width")),n=parseFloat(e[0].getAttribute("height")))}f.getModel().beginUpdate();try{cell=f.insertVertex(null,
+null,b,g.x,g.y,c,n,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(h.result)+";")}finally{f.getModel().endUpdate()}f.setSelectionCell(cell);f.scrollCellToVisible(f.getSelectionCell())};d.src=h.result};h.onerror=function(b){a.handleError(b)}}else a.spinner.stop(),a.handleError(d)};n.onerror=function(b){a.handleError(b)};n.send()}}else if("table"==c){for(var w=null,x=[],u=0,p=0;p<d.length;p++)if(n=mxUtils.trim(d[p]),"create table"==n.substring(0,12).toLowerCase())n=
+mxUtils.trim(n.substring(12)),"("==n.charAt(n.length-1)&&(n=n.substring(0,n.lastIndexOf(" "))),w=new mxCell(n,new mxGeometry(u,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;"),w.vertex=!0,x.push(w),n=a.editor.graph.getPreferredSizeForCell(l),null!=n&&(w.geometry.width=n.width+10);else if(null!=w&&")"==n.charAt(0))u+=w.geometry.width+
+40,w=null;else if("("!=n&&null!=w&&(n=n.substring(0,","==n.charAt(n.length-1)?n.length-1:n.length),"primary key"!=n.substring(0,11).toLowerCase())){var k=n.toLowerCase().indexOf("primary key"),n=n.replace(/primary key/i,""),l=new mxCell(n,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;");l.vertex=
+!0;n=sb.cloneCell(l,0<k?"PK":"");n.connectable=!1;n.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;";n.geometry.width=30;n.geometry.height=26;l.insert(n);n=a.editor.graph.getPreferredSizeForCell(l);null!=n&&w.geometry.width<n.width+10&&(w.geometry.width=Math.min(220,n.width+10));w.insert(l);w.geometry.height+=26}0<x.length&&(f=a.editor.graph,d=f.view,
+n=f.getGraphBounds(),f.setSelectionCells(f.importCells(x,Math.ceil(Math.max(0,n.x/d.scale-d.translate.x)+4*f.gridSize),Math.ceil(Math.max(0,(n.y+n.height)/d.scale-d.translate.y)+4*f.gridSize))),f.scrollCellToVisible(f.getSelectionCell()))}else if("list"==c){if(0<d.length){f=a.editor.graph;w=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;");
+w.vertex=!0;n=f.getPreferredSizeForCell(w);null!=n&&w.geometry.width<n.width+10&&(w.geometry.width=n.width+10);l=[w];if(1<d.length)for(p=1;p<d.length;p++)"--"==d[p]?(n=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;"),n.vertex=!0,w.geometry.height+=n.geometry.height,w.insert(n),l.push(n)):0<d[p].length&&";"!=d[p].charAt(0)&&(u=new mxCell(d[p],
+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;"),u.vertex=!0,n=f.getPreferredSizeForCell(u),null!=n&&u.geometry.width<n.width&&(u.geometry.width=n.width),w.geometry.width=Math.max(w.geometry.width,u.geometry.width),w.geometry.height+=u.geometry.height,w.insert(u),l.push(u));f.getModel().beginUpdate();try{w=f.importCells([w],g.x,g.y)[0],f.fireEvent(new mxEventObject("cellsInserted",
+"cells",[w].concat(w.children)))}finally{f.getModel().endUpdate()}f.setSelectionCell(w);f.scrollCellToVisible(f.getSelectionCell())}}else{for(var l=function(a){var b=m[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,m[a]=b,x.push(b));return b},m={},x=[],p=0;p<d.length;p++)if(";"!=d[p].charAt(0)){var I=d[p].split("->");2<=I.length&&(u=l(I[0]),k=l(I[I.length-1]),I=new mxCell(2<I.length?I[1]:"",new mxGeometry),I.edge=!0,u.insertEdge(I,!0),k.insertEdge(I,!1),
+x.push(I))}if(0<x.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);f=new Graph(d);f.getModel().beginUpdate();try{x=f.importCells(x);for(p=0;p<x.length;p++)f.getModel().isVertex(x[p])&&(n=f.getPreferredSizeForCell(x[p]),x[p].geometry.width=Math.max(x[p].geometry.width,n.width),x[p].geometry.height=Math.max(x[p].geometry.height,n.height));w=new mxFastOrganicLayout(f);w.disableEdgeStyle=!1;w.forceConstant=120;w.execute(f.getDefaultParent())}finally{f.getModel().endUpdate()}f.clearCellOverlays();
+l=[];a.editor.graph.getModel().beginUpdate();try{l=a.editor.graph.importCells(f.getModel().getChildren(f.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);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());f.destroy();d.parentNode.removeChild(d)}}}function e(){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 Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==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();b=document.createElement("div");b.style.textAlign="right";var k=document.createElement("textarea");k.style.resize="none";k.style.width="100%";k.style.height=
+"354px";k.style.marginBottom="16px";var l=document.createElement("select");"formatSql"==c&&(l.style.display="none");var m=document.createElement("option");m.setAttribute("value","list");mxUtils.write(m,mxResources.get("list"));"plantUml"!=c&&l.appendChild(m);null!=c&&"fromText"!=c||m.setAttribute("selected","selected");m=document.createElement("option");m.setAttribute("value","table");mxUtils.write(m,mxResources.get("formatSql"));"formatSql"==c&&(l.appendChild(m),m.setAttribute("selected","selected"));
+m=document.createElement("option");m.setAttribute("value","diagram");mxUtils.write(m,mxResources.get("diagram"));"plantUml"!=c&&l.appendChild(m);m=document.createElement("option");m.setAttribute("value","plantUmlSvg");mxUtils.write(m,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==c&&m.setAttribute("selected","selected");var f=document.createElement("option");f.setAttribute("value","plantUmlPng");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+
+")");var h=document.createElement("option");h.setAttribute("value","plantUmlTxt");mxUtils.write(h,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(l.appendChild(m),l.appendChild(f),l.appendChild(h));var n=e();k.value=n;b.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.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){k.value=a.target.result};b.readAsText(a)}},!1));b.appendChild(l);mxEvent.addListener(l,"change",function(){var a=e();if(0==k.value.length||k.value==n)n=a,k.value=n});c=mxUtils.button(mxResources.get("close"),function(){k.value==n?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);m=mxUtils.button(mxResources.get("insert"),
+function(){a.hideDialog();d(k.value,l.value)});b.appendChild(m);m.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(c);this.container=b},NewDialog=function(a,b,c,d,e,g,k,l,m,f,h,n,u,p,q){function v(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],t(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function y(){if(aa)c||a.hideDialog(),p(aa,Z,F.value);else if(d)c||a.hideDialog(),d(P,F.value);else{var b=F.value;null!=b&&
+0<b.length&&a.pickFolder(a.mode,function(c){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,c)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function B(a,b,c,d,f){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");G.removeAttribute("disabled");P=b;T=c;S=a;aa=d;Z=f;S.style.backgroundColor=l;S.style.border=m}function t(b,c,d,f,h,n,e,w,g){var t=document.createElement("div");t.className="geTemplate";t.style.height=
+Q+"px";t.style.width=L+"px";null!=f&&0<f.length&&t.setAttribute("title",f);if(null!=n)t.style.backgroundImage="url("+n+")",t.style.backgroundSize="contain",t.style.backgroundPosition="center center",t.style.backgroundRepeat="no-repeat",mxEvent.addListener(t,"click",function(a){B(t,null,null,b,e)}),mxEvent.addListener(t,"dblclick",function(a){y()});else if(null!=b&&0<b.length){d=g||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";t.style.backgroundImage="url("+d+")";t.style.backgroundPosition="center center";
+t.style.backgroundRepeat="no-repeat";var p=!1;mxEvent.addListener(t,"click",function(d){G.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";t.style.border="1px solid transparent";d=b;d=/^https?:\/\//.test(d)&&!a.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(B(t,a.getText(),c),p&&y())}))});mxEvent.addListener(t,"dblclick",function(a){p=!0})}else t.innerHTML=
+'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(d)+"</td></tr></table>",h&&B(t),null!=w?mxEvent.addListener(t,"click",w):(mxEvent.addListener(t,"click",function(a){B(t)}),mxEvent.addListener(t,"dblclick",function(a){y()}));N.appendChild(t)}function w(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in U){var c=document.createElement("div"),d=mxResources.get(b),h=U[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+" ("+h.length+")");mxUtils.write(c,c.getAttribute("title"));null!=f&&(c.style.padding=f);Y.appendChild(c);null==a&&(a=c,a.style.backgroundColor=k);(function(b,d){mxEvent.addListener(c,"click",function(){a!=d&&(a.style.backgroundColor="",a=d,
+a.style.backgroundColor=k,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],A=null,v())})})(b,c)}v()}c=null!=c?c:!0;e=null!=e?e:!1;k=null!=k?k:"#ebf2f9";l=null!=l?l:"#e6eff8";m=null!=m?m:"1px solid #ccd9ea";h=null!=h?h:EditorUi.templateFile;var x=document.createElement("div");x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";c&&x.appendChild(C);var z=document.createElement("img");z.setAttribute("border","0");z.setAttribute("align","absmiddle");z.style.width=
 "40px";z.style.height="40px";z.style.marginRight="10px";z.style.paddingBottom="4px";z.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&&c&&C.appendChild(z);c&&mxUtils.write(C,
 (null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");z=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?z=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?z=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?z=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?z=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(z=a.trello.extension);var F=document.createElement("input");F.setAttribute("value",
-a.defaultFilename+z);F.style.marginRight="20px";F.style.marginLeft="10px";F.style.width=b?"220px":"430px";this.init=function(){c&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?F.select():document.execCommand("selectAll",!1,null))};c&&C.appendChild(F);var C=!1,E=0,G=mxUtils.button(mxResources.get("create"),function(){G.setAttribute("disabled","disabled");y();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";if(k||q){var I=[],B=null,D=function(a){G.setAttribute("disabled",
-"disabled");for(var b=0;b<I.length;b++)I[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,z=document.createElement("div");z.style.whiteSpace="nowrap";z.style.height="30px";x.appendChild(z);var H=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;B!=O&&(O=B,v(),B=null)});I.push(H);z.appendChild(H);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==B&&(B=O);N.scrollTop=0;
-N.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(N);E=0;var c=function(a,c){b.stop();O=a;c?N.innerHTML=c:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",v())};a?q(K.value,c):k(c)};k&&(H=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),z.appendChild(H),I.push(H));if(q){H=document.createElement("span");H.style.marginLeft=
+a.defaultFilename+z);F.style.marginRight="20px";F.style.marginLeft="10px";F.style.width=b?"220px":"430px";this.init=function(){c&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?F.select():document.execCommand("selectAll",!1,null))};c&&C.appendChild(F);var C=!1,E=0,G=mxUtils.button(mxResources.get("create"),function(){G.setAttribute("disabled","disabled");y();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";if(n||u){var I=[],A=null,D=function(a){G.setAttribute("disabled",
+"disabled");for(var b=0;b<I.length;b++)I[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,z=document.createElement("div");z.style.whiteSpace="nowrap";z.style.height="30px";x.appendChild(z);var H=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;A!=O&&(O=A,v(),A=null)});I.push(H);z.appendChild(H);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==A&&(A=O);N.scrollTop=0;
+N.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(N);E=0;var c=function(a,c){b.stop();O=a;c?N.innerHTML=c:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",v())};a?u(K.value,c):n(c)};n&&(H=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),z.appendChild(H),I.push(H));if(u){H=document.createElement("span");H.style.marginLeft=
 "10px";H.innerHTML=mxResources.get("search")+":";z.appendChild(H);var K=document.createElement("input");K.style.marginRight="10px";K.style.marginLeft="10px";K.style.width="220px";mxEvent.addListener(K,"keypress",function(a){13==a.keyCode&&M(!0)});z.appendChild(K);H=mxUtils.button(mxResources.get("search"),function(){M(!0)});H.className="geBtn";z.appendChild(H)}D(0)}var T=null,P=null,S=null,aa=null,Z=null,N=document.createElement("div");N.style.border="1px solid #d3d3d3";N.style.position="absolute";
 N.style.left="160px";N.style.right="34px";C=(c?72:40)+(C?30:0);N.style.top=C+"px";N.style.bottom="68px";N.style.margin="6px 0 0 -1px";N.style.padding="6px";N.style.overflow="auto";var Y=document.createElement("div");Y.style.cssText="position:absolute;left:30px;width:128px;top:"+C+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Q=140,L=140,U={},R=1;U.basic=[{title:"blankDiagram",select:!0}];var O=U.basic;if(!b){x.appendChild(Y);x.appendChild(N);var V=!1;/^https?:\/\//.test(h)&&
 !a.isCorsEnabledForUrl(h)&&(h=PROXY_URL+"?url="+encodeURIComponent(h));mxUtils.get(h,function(a){if(!V){V=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=a.getAttribute("section");null==c&&(c=b.indexOf("/"),c=b.substring(0,c));b=U[c];null==b&&(R++,b=[],U[c]=b);b.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),preview:a.getAttribute("preview")})}}a=
 a.nextSibling}w()}})}mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&y()});h=document.createElement("div");h.style.marginTop=b?"4px":"16px";h.style.textAlign="right";h.style.position="absolute";h.style.left="40px";h.style.bottom="24px";h.style.right="40px";C=mxUtils.button(mxResources.get("cancel"),function(){null!=g&&g();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||e&&null==g||h.appendChild(C);b||a.isOffline()||!c||null!=d||e||(z=mxUtils.button(mxResources.get("help"),
 function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),z.className="geBtn",h.appendChild(z));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(F.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",h.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",h.appendChild(p));h.appendChild(G);a.editor.cancelFirst||null!=d||e&&null==g||h.appendChild(C);x.appendChild(h);
-this.container=x},CreateDialog=function(a,b,c,d,e,g,l,m,n,f,h,k,q,u,p){function v(c,d,f,h){function e(){mxEvent.addListener(g,"click",function(){var c=f;if(l){var d=w.value,h=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>h){var c=null!=c?c:z.value,k="";c==App.MODE_GOOGLE?k=a.drive.extension:c==App.MODE_GITHUB?k=a.gitHub.extension:c==App.MODE_TRELLO?k=a.trello.extension:c==App.MODE_DROPBOX?k=a.dropbox.extension:c==App.MODE_ONEDRIVE?k=a.oneDrive.extension:c==App.MODE_DEVICE&&(k=".xml");0<=h&&(d=d.substring(0,
-h));w.value=d+k}}y(f)})}var g=document.createElement("a");g.style.overflow="hidden";var t=document.createElement("img");t.src=c;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(t);mxClient.IS_QUIRKS&&(g.style.cssFloat=
-"left",g.style.zoom="1");g.style.color="gray";g.style.fontSize="11px";var q=document.createElement("div");g.appendChild(q);mxUtils.write(q,d);if(null!=h&&null==a[h]){t.style.visibility="hidden";mxUtils.setOpacity(q,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(g);var v=window.setTimeout(function(){null==a[h]&&(u.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
-function(){null!=a[h]&&(window.clearTimeout(v),mxUtils.setOpacity(q,100),t.style.visibility="",u.stop(),e())}))}else e();x.appendChild(g);++C==k&&(mxUtils.br(x),C=0)}function y(b){var d=w.value;if(null==b||null!=d&&0<d.length)a.hideDialog(),c(d,b)}l=null!=l?l:!0;m=null!=m?m:!0;k=null!=k?k:4;var A=document.createElement("div");null==d&&a.addLanguageMenu(A);var t=document.createElement("h2");mxUtils.write(t,e||mxResources.get("create"));t.style.marginTop="0px";t.style.marginBottom="24px";A.appendChild(t);
-mxUtils.write(A,mxResources.get("filename")+":");var w=document.createElement("input");w.setAttribute("value",b);w.style.width="280px";w.style.marginLeft="10px";w.style.marginBottom="20px";this.init=function(){w.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?w.select():document.execCommand("selectAll",!1,null)};A.appendChild(w);null!=q&&null!=u&&"image/"==u.substring(0,6)&&(w.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%)"),
-A.appendChild(e),n&&Editor.popupsAllowed&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){y("_blank")})));mxUtils.br(A);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";A.appendChild(x);var z=document.createElement("select");z.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")),
+mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",h.appendChild(b));Graph.fileSupport&&q&&(q=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()}),q.className="geBtn",h.appendChild(q));h.appendChild(G);a.editor.cancelFirst||null!=d||e&&null==g||h.appendChild(C);x.appendChild(h);
+this.container=x},CreateDialog=function(a,b,c,d,e,g,k,l,m,f,h,n,u,p,q){function v(c,d,f,h){function e(){mxEvent.addListener(g,"click",function(){var c=f;if(k){var d=w.value,h=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>h){var c=null!=c?c:z.value,n="";c==App.MODE_GOOGLE?n=a.drive.extension:c==App.MODE_GITHUB?n=a.gitHub.extension:c==App.MODE_TRELLO?n=a.trello.extension:c==App.MODE_DROPBOX?n=a.dropbox.extension:c==App.MODE_ONEDRIVE?n=a.oneDrive.extension:c==App.MODE_DEVICE&&(n=".xml");0<=h&&(d=d.substring(0,
+h));w.value=d+n}}y(f)})}var g=document.createElement("a");g.style.overflow="hidden";var t=document.createElement("img");t.src=c;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(t);mxClient.IS_QUIRKS&&(g.style.cssFloat=
+"left",g.style.zoom="1");g.style.color="gray";g.style.fontSize="11px";var p=document.createElement("div");g.appendChild(p);mxUtils.write(p,d);if(null!=h&&null==a[h]){t.style.visibility="hidden";mxUtils.setOpacity(p,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(g);var q=window.setTimeout(function(){null==a[h]&&(u.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
+function(){null!=a[h]&&(window.clearTimeout(q),mxUtils.setOpacity(p,100),t.style.visibility="",u.stop(),e())}))}else e();x.appendChild(g);++C==n&&(mxUtils.br(x),C=0)}function y(b){var d=w.value;if(null==b||null!=d&&0<d.length)a.hideDialog(),c(d,b)}k=null!=k?k:!0;l=null!=l?l:!0;n=null!=n?n:4;var B=document.createElement("div");null==d&&a.addLanguageMenu(B);var t=document.createElement("h2");mxUtils.write(t,e||mxResources.get("create"));t.style.marginTop="0px";t.style.marginBottom="24px";B.appendChild(t);
+mxUtils.write(B,mxResources.get("filename")+":");var w=document.createElement("input");w.setAttribute("value",b);w.style.width="280px";w.style.marginLeft="10px";w.style.marginBottom="20px";this.init=function(){w.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?w.select():document.execCommand("selectAll",!1,null)};B.appendChild(w);null!=u&&null!=p&&"image/"==p.substring(0,6)&&(w.style.width="160px",e=null,"image/svg+xml"==p&&mxClient.IS_SVG?(e=document.createElement("div"),
+e.innerHTML=mxUtils.trim(u),u=e.getElementsByTagName("svg")[0],p=parseInt(u.getAttribute("width")),q=parseInt(u.getAttribute("height")),u.setAttribute("viewBox","0 0 "+p+" "+q),u.setAttribute("width","120px"),u.setAttribute("height","80px")):(e=document.createElement("img"),e.setAttribute("src","data:"+p+(q?";base64,":";utf8,")+u)),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%)"),
+B.appendChild(e),m&&Editor.popupsAllowed&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){y("_blank")})));mxUtils.br(B);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";B.appendChild(x);var z=document.createElement("select");z.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")),
 z.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")),z.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")),z.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")),z.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")),z.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")),z.appendChild(e),a.mode!=App.MODE_DEVICE&&m||e.setAttribute("selected",
-"selected"),h&&v(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);m&&isLocalStorage&&"0"!=urlParams.browser&&(m=document.createElement("option"),m.setAttribute("value",App.MODE_BROWSER),mxUtils.write(m,mxResources.get("browser")),z.appendChild(m),a.mode==App.MODE_BROWSER&&m.setAttribute("selected","selected"),v(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));m=document.createElement("div");m.style.marginTop="26px";m.style.textAlign="center";
-null!=f&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(f)}),e.className="geBtn",m.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&m.appendChild(e);null==d&&(q=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),q.className="geBtn",m.appendChild(q));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"),
-function(){y("_blank")}),n.className="geBtn",m.appendChild(n));mxClient.IS_IOS||(g=mxUtils.button(g||mxResources.get("create"),function(){y(h?"download":App.MODE_DEVICE)}),g.className="geBtn gePrimaryBtn",m.appendChild(g));a.editor.cancelFirst||m.appendChild(e);mxEvent.addListener(w,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});A.appendChild(m);this.container=A},PopupDialog=function(a,b,c,d,e){e=null!=e?e:!0;var g=document.createElement("div");
-g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var l=mxUtils.button(mxResources.get("openInThisWindow"),function(){e&&a.hideDialog();null!=d&&d()});l.className="geBtn";l.style.marginBottom="8px";l.style.width="280px";g.appendChild(l);mxUtils.br(g);var m=mxUtils.button(mxResources.get("openInNewWindow"),function(){e&&a.hideDialog();null!=c&&c();a.openLink(b,null,!0)});m.className="geBtn gePrimaryBtn";m.style.width=l.style.width;g.appendChild(m);
-mxUtils.br(g);mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,b,c,d,e,g){g=null!=g?g:!0;var l=a.editor.graph,m=document.createElement("div");mxUtils.write(m,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 n=document.createElement("input");
-n.setAttribute("value",c);n.setAttribute("type","text");n.setAttribute("spellcheck","false");n.setAttribute("autocorrect","off");n.setAttribute("autocomplete","off");n.setAttribute("autocapitalize","off");n.style.marginTop="6px";n.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.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('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){n.value="";n.focus()});b.appendChild(n);b.appendChild(c);m.appendChild(b);var f=function(b,c,f,h){var k="data:"==b.substring(0,5);!a.isOffline()||
-k&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(k){a.spinner.stop();a.hideDialog();var e=!1===h?1:null!=c&&null!=f?Math.max(c/k.width,f/k.height):Math.min(1,Math.min(520/k.width,520/k.height));g&&(b=a.convertDataUri(b));d(b,Math.round(Number(k.width)*e),Math.round(Number(k.height)*e))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(),
-d(b)):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},h=function(b,c){if(null!=b){var h=e?null:l.getModel().getGeometry(l.getSelectionCell());null!=h?f(b,h.width,h.height,c):f(b,null,null,c)}else a.hideDialog(),d(null)};this.init=function(){n.focus();if(Graph.fileSupport){n.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=m.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(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,f,k,e,g){h(a,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=
+(e=document.createElement("option"),e.setAttribute("value",App.MODE_TRELLO),mxUtils.write(e,mxResources.get("trello")),z.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")),z.appendChild(e),a.mode!=App.MODE_DEVICE&&l||e.setAttribute("selected",
+"selected"),h&&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")),z.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="center";
+null!=f&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(f)}),e.className="geBtn",l.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);null==d&&(u=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),u.className="geBtn",l.appendChild(u));m&&Editor.popupsAllowed&&(m=mxUtils.button(mxResources.get("openInNewWindow"),
+function(){y("_blank")}),m.className="geBtn",l.appendChild(m));mxClient.IS_IOS||(g=mxUtils.button(g||mxResources.get("create"),function(){y(h?"download":App.MODE_DEVICE)}),g.className="geBtn gePrimaryBtn",l.appendChild(g));a.editor.cancelFirst||l.appendChild(e);mxEvent.addListener(w,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});B.appendChild(l);this.container=B},PopupDialog=function(a,b,c,d,e){e=null!=e?e:!0;var g=document.createElement("div");
+g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var k=mxUtils.button(mxResources.get("openInThisWindow"),function(){e&&a.hideDialog();null!=d&&d()});k.className="geBtn";k.style.marginBottom="8px";k.style.width="280px";g.appendChild(k);mxUtils.br(g);var l=mxUtils.button(mxResources.get("openInNewWindow"),function(){e&&a.hideDialog();null!=c&&c();a.openLink(b,null,!0)});l.className="geBtn gePrimaryBtn";l.style.width=k.style.width;g.appendChild(l);
+mxUtils.br(g);mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,b,c,d,e,g){g=null!=g?g:!0;var k=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",c);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";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(){m.value="";m.focus()});b.appendChild(m);b.appendChild(c);l.appendChild(b);var f=function(b,c,f,h){var n="data:"==b.substring(0,5);!a.isOffline()||
+n&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(n){a.spinner.stop();a.hideDialog();var e=!1===h?1:null!=c&&null!=f?Math.max(c/n.width,f/n.height):Math.min(1,Math.min(520/n.width,520/n.height));g&&(b=a.convertDataUri(b));d(b,Math.round(Number(n.width)*e),Math.round(Number(n.height)*e))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(),
+d(b)):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},h=function(b,c){if(null!=b){var h=e?null:k.getModel().getGeometry(k.getSelectionCell());null!=h?f(b,h.width,h.height,c):f(b,null,null,c)}else a.hideDialog(),d(null)};this.init=function(){m.focus();if(Graph.fileSupport){m.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=l.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(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,f,n,e,g){h(a,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(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&h(decodeURIComponent(d))}b.stopPropagation();b.preventDefault()}),!1)}};c=document.createElement("div");c.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";c.style.textAlign="right";b=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});b.className="geBtn";
-a.editor.cancelFirst&&c.appendChild(b);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(n.value=a.url));n.focus()};if(Graph.fileSupport){var k=document.createElement("input");k.setAttribute("multiple","multiple");k.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(k,"change",function(b){a.importFiles(k.files,0,0,a.maxImageSize,function(a,b,c,d,f,k){h(a)},
-function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var q=mxUtils.button(mxResources.get("open"),function(){k.click()});q.className="geBtn";c.appendChild(q)}}document.createElement("canvas").getContext&&"data:image/"==n.value.substring(0,11)&&"data:image/svg"!=n.value.substring(0,14)&&(q=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,n.value,function(a){n.value=a});a.showDialog(b.container,200,185,!0,!0);
-b.init()}),q.className="geBtn",c.appendChild(q));"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(q=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)}),q.className=
-"geBtn",c.appendChild(q),null!=a.drive&&"1"==urlParams.photos&&(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",c.appendChild(q)));mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&h(n.value)});q=mxUtils.button(mxResources.get("apply"),function(){h(n.value)});q.className="geBtn gePrimaryBtn";c.appendChild(q);a.editor.cancelFirst||c.appendChild(b);Graph.fileSupport&&(c.style.marginTop="120px",m.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",m.style.backgroundPosition=
-"center 65%",m.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")),m.appendChild(b));m.appendChild(c);this.container=m},LinkDialog=function(a,b,c,d,e){function g(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 l=document.createElement("div");mxUtils.write(l,mxResources.get("editLink")+":");var m=document.createElement("div");m.className="geTitle";m.style.backgroundColor="transparent";m.style.borderColor="transparent";m.style.whiteSpace="nowrap";m.style.textOverflow="clip";m.style.cursor="default";mxClient.IS_VML||(m.style.paddingRight="20px");var n=document.createElement("input");
-n.setAttribute("placeholder",mxResources.get("dragUrlsHere"));n.setAttribute("type","text");n.style.marginTop="6px";n.style.width="440px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";var f=document.createElement("div");f.setAttribute("title",mxResources.get("reset"));f.style.position="relative";f.style.left="-16px";f.style.width="12px";f.style.height="14px";f.style.cursor="pointer";
-f.style.display=mxClient.IS_VML?"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){n.value="";n.focus()});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 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 q=document.createElement("select");q.style.width="420px";if(e&&null!=a.pages){null!=b&&"data:page/id,"==b.substring(0,13)?(k.setAttribute("checked","checked"),k.defaultChecked=!0):(n.setAttribute("value",b),h.setAttribute("checked","checked"),h.defaultChecked=!0);n.style.width="420px";m.appendChild(h);m.appendChild(n);m.appendChild(f);mxUtils.br(m);m.appendChild(k);e=!1;for(f=0;f<a.pages.length;f++){var u=
-document.createElement("option");mxUtils.write(u,a.pages[f].getName()||mxResources.get("pageWithNumber",[f+1]));u.setAttribute("value","data:page/id,"+a.pages[f].getId());b==u.getAttribute("value")&&(u.setAttribute("selected","selected"),e=!0);q.appendChild(u)}if(!e&&k.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)})}m.appendChild(q)}else n.setAttribute("value",b),m.appendChild(n),m.appendChild(f);l.appendChild(m);var v=mxUtils.button(c,function(){a.hideDialog();d(k.checked?"pageNotFound"!==q.value?q.value:b:n.value,LinkDialog.selectedDocs)});v.style.verticalAlign="middle";v.className="geBtn gePrimaryBtn";this.init=function(){k.checked?q.focus():(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?
-n.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(q,"focus",function(){h.removeAttribute("checked");k.setAttribute("checked","checked");k.checked=!0});mxEvent.addListener(n,"focus",function(){k.removeAttribute("checked");h.setAttribute("checked","checked");h.checked=!0});if(Graph.fileSupport){var b=l.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")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),h.setAttribute("checked","checked"),h.checked=!0,v.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div");
-y.style.marginTop="20px";y.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign="middle";c.className="geBtn";a.editor.cancelFirst&&y.appendChild(c);m=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});m.style.verticalAlign="middle";m.className="geBtn";y.appendChild(m);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(m.style.display="none");LinkDialog.selectedDocs=null;LinkDialog.filePicked=
+a.editor.cancelFirst&&c.appendChild(b);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(m.value=a.url));m.focus()};if(Graph.fileSupport){var n=document.createElement("input");n.setAttribute("multiple","multiple");n.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(n,"change",function(b){a.importFiles(n.files,0,0,a.maxImageSize,function(a,b,c,d,f,n){h(a)},
+function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var u=mxUtils.button(mxResources.get("open"),function(){n.click()});u.className="geBtn";c.appendChild(u)}}document.createElement("canvas").getContext&&"data:image/"==m.value.substring(0,11)&&"data:image/svg"!=m.value.substring(0,14)&&(u=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,m.value,function(a){m.value=a});a.showDialog(b.container,200,185,!0,!0);
+b.init()}),u.className="geBtn",c.appendChild(u));"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(u=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)}),u.className=
+"geBtn",c.appendChild(u),null!=a.drive&&"1"==urlParams.photos&&(u=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)}))}),u.className="geBtn",c.appendChild(u)));mxEvent.addListener(m,"keypress",function(a){13==a.keyCode&&h(m.value)});u=mxUtils.button(mxResources.get("apply"),function(){h(m.value)});u.className="geBtn gePrimaryBtn";c.appendChild(u);a.editor.cancelFirst||c.appendChild(b);Graph.fileSupport&&(c.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(c);this.container=l},LinkDialog=function(a,b,c,d,e){function g(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 k=document.createElement("div");mxUtils.write(k,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="440px";m.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";m.style.backgroundRepeat="no-repeat";m.style.backgroundPosition="100% 50%";m.style.paddingRight="14px";var f=document.createElement("div");f.setAttribute("title",mxResources.get("reset"));f.style.position="relative";f.style.left="-16px";f.style.width="12px";f.style.height="14px";f.style.cursor="pointer";
+f.style.display=mxClient.IS_VML?"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){m.value="";m.focus()});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 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 u=document.createElement("select");u.style.width="420px";if(e&&null!=a.pages){null!=b&&"data:page/id,"==b.substring(0,13)?(n.setAttribute("checked","checked"),n.defaultChecked=!0):(m.setAttribute("value",b),h.setAttribute("checked","checked"),h.defaultChecked=!0);m.style.width="420px";l.appendChild(h);l.appendChild(m);l.appendChild(f);mxUtils.br(l);l.appendChild(n);e=!1;for(f=0;f<a.pages.length;f++){var p=
+document.createElement("option");mxUtils.write(p,a.pages[f].getName()||mxResources.get("pageWithNumber",[f+1]));p.setAttribute("value","data:page/id,"+a.pages[f].getId());b==p.getAttribute("value")&&(p.setAttribute("selected","selected"),e=!0);u.appendChild(p)}if(!e&&n.checked){var q=document.createElement("option");mxUtils.write(q,mxResources.get("pageNotFound"));q.setAttribute("disabled","disabled");q.setAttribute("selected","selected");q.setAttribute("value","pageNotFound");u.appendChild(q);mxEvent.addListener(u,
+"change",function(){null==q.parentNode||q.selected||q.parentNode.removeChild(q)})}l.appendChild(u)}else m.setAttribute("value",b),l.appendChild(m),l.appendChild(f);k.appendChild(l);var v=mxUtils.button(c,function(){a.hideDialog();d(n.checked?"pageNotFound"!==u.value?u.value:b:m.value,LinkDialog.selectedDocs)});v.style.verticalAlign="middle";v.className="geBtn gePrimaryBtn";this.init=function(){n.checked?u.focus():(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?
+m.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(u,"focus",function(){h.removeAttribute("checked");n.setAttribute("checked","checked");n.checked=!0});mxEvent.addListener(m,"focus",function(){n.removeAttribute("checked");h.setAttribute("checked","checked");h.checked=!0});if(Graph.fileSupport){var b=k.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")),h.setAttribute("checked","checked"),h.checked=!0,v.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div");
+y.style.marginTop="20px";y.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign="middle";c.className="geBtn";a.editor.cancelFirst&&y.appendChild(c);l=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});l.style.verticalAlign="middle";l.className="geBtn";y.appendChild(l);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(l.style.display="none");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);n.value=b;n.focus()}else LinkDialog.selectedDocs=null;n.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&g(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),
+(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&&g(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),f=(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(f).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&&g(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){n.value=a[0].link;n.focus()}})});null!=
-a.oneDrive&&g(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){n.value=b.value[0].webUrl;n.focus()})});null!=a.gitHub&&g(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("/");n.value="https://github.com/"+b+"/"+c+"/blob/"+d+"/"+a;n.focus()}})});mxEvent.addListener(n,"keypress",function(b){13==b.keyCode&&(a.hideDialog(),
-d(k.checked?q.value:n.value,LinkDialog.selectedDocs))});y.appendChild(v);a.editor.cancelFirst||y.appendChild(c);l.appendChild(y);this.container=l},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var c=document.createElement("img");c.style.border="0px";mxClient.IS_SVG?(c.setAttribute("width","164"),c.setAttribute("height","221"),c.style.width="164px",c.style.height="221px",c.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):
+"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&&g(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&&g(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&&g(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(),
+d(n.checked?u.value:m.value,LinkDialog.selectedDocs))});y.appendChild(v);a.editor.cancelFirst||y.appendChild(c);k.appendChild(y);this.container=k},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var c=document.createElement("img");c.style.border="0px";mxClient.IS_SVG?(c.setAttribute("width","164"),c.setAttribute("height","221"),c.style.width="164px",c.style.height="221px",c.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")):
 (c.setAttribute("width","176"),c.setAttribute("height","219"),c.style.width="170px",c.style.height="219px",c.setAttribute("src",IMAGE_PATH+"/logo-flat.png"));b.appendChild(c);mxUtils.br(b);c=document.createElement("small");c.innerHTML="v "+EditorUi.VERSION;c.style.color="#505050";b.appendChild(c);mxUtils.br(b);mxUtils.br(b);c=document.createElement("small");c.style.color="#505050";c.innerHTML='&copy; 2005-2018 <a href="https://about.draw.io/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.';
 b.appendChild(c);mxEvent.addListener(b,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=b},FeedbackDialog=function(a){var b=document.createElement("div"),c=document.createElement("div");mxUtils.write(c,mxResources.get("sendYourFeedbackToDrawIo"));c.style.fontSize="18px";c.style.marginBottom="18px";b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");b.appendChild(c);var d=document.createElement("input");
-d.setAttribute("type","text");d.style.marginTop="6px";d.style.width="600px";var e=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(l.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(d.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+
-"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+n.value+b),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});e.className="geBtn gePrimaryBtn";e.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-mxEvent.addListener(d,"change",function(){0<d.value.length&&0<g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});mxEvent.addListener(d,"keyup",function(){0<d.value.length&&g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});b.appendChild(d);this.init=function(){d.focus()};var l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("checked","checked");l.defaultChecked=!0;c=document.createElement("p");c.style.marginTop=
-"14px";c.appendChild(l);var m=document.createElement("span");mxUtils.write(m," "+mxResources.get("includeCopyOfMyDiagram"));c.appendChild(m);mxEvent.addListener(m,"click",function(a){l.checked=!l.checked;mxEvent.consume(a)});b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("feedback"));b.appendChild(c);var n=document.createElement("textarea");n.style.resize="none";n.style.width="600px";n.style.height="140px";n.style.marginTop="6px";n.setAttribute("placeholder",mxResources.get("commentsNotes"));
-b.appendChild(n);c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst?(c.appendChild(m),c.appendChild(e)):(c.appendChild(e),c.appendChild(m));b.appendChild(c);this.container=b};FeedbackDialog.maxAttachmentSize=1E6;
-var RevisionDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("revisionHistory"));d.appendChild(e);var g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";d.appendChild(g);var l=document.createElement("div");l.style.position="absolute";l.style.border="1px solid lightGray";l.style.left="199px";l.style.width="470px";l.style.height=
-"376px";l.style.overflow="hidden";mxEvent.disableContextMenu(l);d.appendChild(l);var m=new Graph(l);m.setEnabled(!1);m.setPanning(!0);m.panningHandler.ignoreCell=!0;m.panningHandler.useLeftButtonForPanning=!0;m.minFitScale=null;m.maxFitScale=null;m.centerZoom=!0;var n=0,f=null,h=0,k=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a&&null!=f&&null!=f[h]?f[h].getAttribute("name"):"pagenumber"==a?h+1:k.apply(this,arguments)};m.getLinkForCell=function(){return null};Editor.MathJaxRender&&
-m.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(m.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,A=null,t=mxUtils.button("",function(){null!=y&&m.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 w=mxUtils.button("",function(){null!=y&&m.zoomOut()});w.className="geSprite geSprite-zoomout";w.setAttribute("title",mxResources.get("zoomOut"));w.style.outline="none";w.style.border="none";w.style.margin="2px";w.setAttribute("disabled","disabled");mxUtils.setOpacity(w,20);var x=mxUtils.button("",function(){null!=y&&(m.maxFitScale=8,m.fit(8),m.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&&(m.zoomActual(),m.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 z=
+d.setAttribute("type","text");d.style.marginTop="6px";d.style.width="600px";var e=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(k.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(d.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+
+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+m.value+b),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});e.className="geBtn gePrimaryBtn";e.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+mxEvent.addListener(d,"change",function(){0<d.value.length&&0<g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});mxEvent.addListener(d,"keyup",function(){0<d.value.length&&g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});b.appendChild(d);this.init=function(){d.focus()};var k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("checked","checked");k.defaultChecked=!0;c=document.createElement("p");c.style.marginTop=
+"14px";c.appendChild(k);var l=document.createElement("span");mxUtils.write(l," "+mxResources.get("includeCopyOfMyDiagram"));c.appendChild(l);mxEvent.addListener(l,"click",function(a){k.checked=!k.checked;mxEvent.consume(a)});b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("feedback"));b.appendChild(c);var m=document.createElement("textarea");m.style.resize="none";m.style.width="600px";m.style.height="140px";m.style.marginTop="6px";m.setAttribute("placeholder",mxResources.get("commentsNotes"));
+b.appendChild(m);c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst?(c.appendChild(l),c.appendChild(e)):(c.appendChild(e),c.appendChild(l));b.appendChild(c);this.container=b};FeedbackDialog.maxAttachmentSize=1E6;
+var RevisionDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("revisionHistory"));d.appendChild(e);var g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";d.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.left="199px";k.style.width="470px";k.style.height=
+"376px";k.style.overflow="hidden";mxEvent.disableContextMenu(k);d.appendChild(k);var l=new Graph(k);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,f=null,h=0,n=l.getGlobalVariable;l.getGlobalVariable=function(a){return"page"==a&&null!=f&&null!=f[h]?f[h].getAttribute("name"):"pagenumber"==a?h+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 u=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%"}),p=a.getCurrentFile(),q=null,v=null,y=null,B=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 w=mxUtils.button("",function(){null!=y&&l.zoomOut()});w.className="geSprite geSprite-zoomout";w.setAttribute("title",mxResources.get("zoomOut"));w.style.outline="none";w.style.border="none";w.style.margin="2px";w.setAttribute("disabled","disabled");mxUtils.setOpacity(w,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 z=
 document.createElement("div");z.style.position="absolute";z.style.textAlign="right";z.style.color="gray";z.style.marginTop="10px";z.style.backgroundColor="transparent";z.style.top="440px";z.style.right="32px";z.style.maxWidth="380px";z.style.cursor="default";var F=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"))}});F.className="geBtn";F.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=A&&a.confirm(mxResources.get("areYouSure"),function(){null!=c?c(A):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop();
-a.replaceFileData(A);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 G=document.createElement("select");G.setAttribute("disabled","disabled");G.style.maxWidth="80px";G.style.position="relative";G.style.top="-2px";G.style.verticalAlign="bottom";G.style.marginRight="6px";G.style.display="none";var I=null;mxEvent.addListener(G,"change",function(a){null!=
-I&&(I(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!=c&&(B.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=v&&a.openLink(v.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled",
-"disabled");null!=c&&(D.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 H=document.createElement("div");H.className="geToolbarContainer";H.style.backgroundColor="transparent";H.style.padding="2px";H.style.border="none";H.style.left="199px";H.style.top="442px";var M=null;if(null!=b&&0<b.length){l.style.cursor="move";var K=document.createElement("table");K.style.border=
-"1px solid lightGray";K.style.borderCollapse="collapse";K.style.borderSpacing="0px";K.style.width="100%";var T=document.createElement("tbody"),P=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(n=mxUtils.indexOf(a.pages,a.currentPage));for(var S=b.length-1;0<=S;S--){var aa=function(c){var d=new Date(c.modifiedDate),k=null;if(0<=d.getTime()){var e=function(b){q.stop();var c=mxUtils.parseXml(b),e=a.editor.extractGraphModel(c.documentElement,!0);if(null!=e){var g=function(b){null!=b&&(b=
-v(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},v=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";l.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,m.getModel());m.maxFitScale=1;m.fit(8);m.center();return a};G.style.display="none";G.innerHTML="";y=c;A=b;f=parseSelectFunction=null;h=0;if("mxfile"==e.nodeName){c=e.getElementsByTagName("diagram");f=[];for(b=0;b<c.length;b++)f.push(c[b]);
-h=Math.min(n,f.length-1);0<f.length&&g(f[h]);if(1<f.length)for(G.removeAttribute("disabled"),G.style.display="",b=0;b<f.length;b++)c=document.createElement("option"),mxUtils.write(c,f[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==h&&c.setAttribute("selected","selected"),G.appendChild(c);I=function(){h=n=parseInt(G.value);g(f[n])}}else v(e);z.innerHTML="";mxUtils.write(z,d.toLocaleDateString()+" "+d.toLocaleTimeString());z.setAttribute("title",k.getAttribute("title"));
-t.removeAttribute("disabled");w.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),F.removeAttribute("disabled"),D.removeAttribute("disabled"),B.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(w,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else G.style.display="none",G.innerHTML="",z.innerHTML="",mxUtils.write(z,mxResources.get("errorLoadingFile"))},
-k=document.createElement("tr");k.style.borderBottom="1px solid lightGray";k.style.fontSize="12px";k.style.cursor="pointer";var g=document.createElement("td");g.style.padding="6px";g.style.whiteSpace="nowrap";c==b[b.length-1]?mxUtils.write(g,mxResources.get("current")):d.toDateString()===P?mxUtils.write(g,d.toLocaleTimeString()):mxUtils.write(g,d.toLocaleDateString()+" "+d.toLocaleTimeString());k.appendChild(g);k.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+
-(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(k,"click",function(a){v!=c&&(q.stop(),null!=p&&(p.style.backgroundColor=""),v=c,p=k,p.style.backgroundColor="#ebf2f9",A=y=null,z.removeAttribute("title"),z.innerHTML=mxResources.get("loading")+"...",l.style.backgroundColor="#ffffff",m.getModel().clear(),E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),w.setAttribute("disabled","disabled"),C.setAttribute("disabled",
-"disabled"),x.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(w,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),q.spin(l),c.getXml(function(a){v==c&&e(a)},function(a){q.stop();G.style.display="none";G.innerHTML="";z.innerHTML="";mxUtils.write(z,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(k,"dblclick",function(a){D.click();
-window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(k)}return k}(b[S]);null!=aa&&S==b.length-1&&(M=aa)}K.appendChild(T);g.appendChild(K)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(l.style.display="none",H.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(l.style.display="none",H.style.display="none",mxUtils.write(g,
-mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";H.appendChild(G);H.appendChild(t);H.appendChild(w);H.appendChild(C);H.appendChild(x);a.editor.cancelFirst?(e.appendChild(g),e.appendChild(F),e.appendChild(B),e.appendChild(E),e.appendChild(D)):(e.appendChild(F),e.appendChild(B),e.appendChild(E),e.appendChild(D),e.appendChild(g));d.appendChild(e);d.appendChild(H);d.appendChild(z);this.container=
-d},DraftDialog=function(a,b,c,d,e,g,l,m){var n=document.createElement("div"),f=document.createElement("div");f.style.marginTop="0px";f.style.whiteSpace="nowrap";f.style.overflow="auto";mxUtils.write(f,b);n.appendChild(f);var h=document.createElement("div");h.style.position="absolute";h.style.border="1px solid lightGray";h.style.marginTop="10px";h.style.width="640px";h.style.top="46px";h.style.bottom="74px";h.style.overflow="hidden";mxEvent.disableContextMenu(h);n.appendChild(h);var k=new Graph(h);
-k.setEnabled(!1);k.setPanning(!0);k.panningHandler.ignoreCell=!0;k.panningHandler.useLeftButtonForPanning=!0;k.minFitScale=null;k.maxFitScale=null;k.centerZoom=!0;b=mxUtils.parseXml(c);var q=a.editor.extractGraphModel(b.documentElement,!0),u=0,p=null,v=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a&&null!=p&&null!=p[u]?p[u].getAttribute("name"):"pagenumber"==a?u+1:v.apply(this,arguments)};k.getLinkForCell=function(){return null};b=mxUtils.button("",function(){k.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);c=mxUtils.button("",function(){k.zoomOut()});c.className="geSprite geSprite-zoomout";c.setAttribute("title",mxResources.get("zoomOut"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);f=mxUtils.button("",function(){k.maxFitScale=8;k.fit(8);k.center()});f.className="geSprite geSprite-fit";f.setAttribute("title",
-mxResources.get("fit"));f.style.outline="none";f.style.border="none";f.style.margin="2px";mxUtils.setOpacity(f,60);var y=mxUtils.button("",function(){k.zoomActual();k.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(l||mxResources.get("discard"),e);e.className="geBtn";var A=document.createElement("select");A.style.maxWidth="80px";A.style.position=
-"relative";A.style.top="-2px";A.style.verticalAlign="bottom";A.style.marginRight="6px";A.style.display="none";d=mxUtils.button(g||mxResources.get("edit"),d);d.className="geBtn gePrimaryBtn";g=document.createElement("div");g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";l=document.createElement("div");l.className="geToolbarContainer";l.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";h.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,k.getModel());k.maxFitScale=1;k.fit(8);k.center()}}function c(c){null!=c&&(c=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c}mxEvent.addListener(A,"change",function(a){u=parseInt(A.value);c(p[u]);mxEvent.consume(a)});if("mxfile"==q.nodeName){var d=q.getElementsByTagName("diagram");
-p=[];for(var f=0;f<d.length;f++)p.push(d[f]);0<p.length&&c(p[u]);if(1<p.length)for(A.style.display="",f=0;f<p.length;f++)d=document.createElement("option"),mxUtils.write(d,p[f].getAttribute("name")||mxResources.get("pageWithNumber",[f+1])),d.setAttribute("value",f),f==u&&d.setAttribute("selected","selected"),A.appendChild(d)}else b(q)};l.appendChild(A);l.appendChild(b);l.appendChild(c);l.appendChild(y);l.appendChild(f);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className=
-"geBtn";m=null!=m?mxUtils.button(mxResources.get("ignore"),m):null;null!=m&&(m.className="geBtn");a.editor.cancelFirst?(g.appendChild(b),null!=m&&g.appendChild(m),g.appendChild(e),g.appendChild(d)):(g.appendChild(d),g.appendChild(e),null!=m&&g.appendChild(m),g.appendChild(b));n.appendChild(g);n.appendChild(l);this.container=n},FindWindow=function(a,b,c,d,e){function g(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 f=
-mxUtils.trim(b[d].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&f.substring(0,c.length)===c||null!=a&&a.test(f))return!0}}return!1}function l(){var a=n.model.getDescendants(n.model.getRoot()),b=q.value.toLowerCase(),c=u.checked?new RegExp(b):null,d=null;f!=b&&(f=b,h=null);var k=null==h;if(0<b.length)for(var e=0;e<a.length;e++){var m=n.view.getState(a[e]);if(null!=m&&null!=m.cell.value&&(k||null==d)&&(n.model.isVertex(m.cell)||n.model.isEdge(m.cell))&&(n.isHtmlLabel(m.cell)?
-(p.innerHTML=n.getLabel(m.cell),label=mxUtils.extractTextWithWhitespace([p])):label=n.getLabel(m.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===b||g(c,m.cell,b))||null!=c&&(c.test(label)||g(c,m.cell,b))))if(k){d=m;break}else null==d&&(d=m);k=k||m==h}null!=d?(h=d,n.scrollCellToVisible(h.cell),n.isEnabled()?n.setSelectionCell(h.cell):n.highlightCell(h.cell)):n.isEnabled()&&n.clearSelection();return 0==b.length||null!=d}
-var m=a.actions.get("find"),n=a.editor.graph,f=null,h=null,k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.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";k.appendChild(q);mxUtils.br(k);var u=document.createElement("input");
-u.setAttribute("type","checkbox");u.style.marginRight="4px";k.appendChild(u);mxUtils.write(k,mxResources.get("regularExpression"));var p=document.createElement("div");mxUtils.br(k);var v=mxUtils.button(mxResources.get("reset"),function(){q.value="";q.style.backgroundColor="";f=h=null;q.focus()});v.setAttribute("title",mxResources.get("reset"));v.style.marginTop="6px";v.style.marginRight="4px";v.className="geBtn";k.appendChild(v);v=mxUtils.button(mxResources.get("find"),function(){try{q.style.backgroundColor=
-l()?"":"#ffcfcf"}catch(y){a.handleError(y)}});v.setAttribute("title",mxResources.get("find")+" (Enter)");v.style.marginTop="6px";v.className="geBtn gePrimaryBtn";k.appendChild(v);mxEvent.addListener(q,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)m.funct();else if(f!=q.value.toLowerCase()||13==a.keyCode)try{q.style.backgroundColor=l()?"":"#ffcfcf"}catch(A){q.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(k,"keydown",function(b){70==b.keyCode&&
-a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(m.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),k,b,c,d,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)):n.container.focus()}))},
-TagsWindow=function(a,b,c,d,e){var g=a.editor.graph,l="tags",m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("input");n.setAttribute("placeholder",mxResources.get("allTags"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.width="260px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";m.appendChild(n);if(!a.isOffline()||mxClient.IS_CHROMEAPP){n.style.width=
-"240px";var f=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");f.firstChild.style.marginBottom="6px";f.style.marginLeft="6px";m.appendChild(f)}mxEvent.addListener(n,"dblclick",function(){var b=new FilenameDialog(a,l,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(l=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});n.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(m);
-f=mxUtils.button(mxResources.get("hide"),function(){var a=g.getCellsForTags(n.value.split(" "),void 0,l);g.setCellsVisible(a,!1)});f.setAttribute("title",mxResources.get("hide"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";m.appendChild(f);f=mxUtils.button(mxResources.get("show"),function(){var a=g.getCellsForTags(n.value.split(" "),void 0,l);g.setCellsVisible(a,!0);if(g.isEnabled())g.setSelectionCells(a);else for(var b=0;b<a.length;b++)g.highlightCell(a[b])});f.setAttribute("title",
-mxResources.get("show"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";m.appendChild(f);var h=a.actions.get("tags"),f=mxUtils.button(mxResources.get("close"),function(){h.funct()});f.setAttribute("title",mxResources.get("close")+" (Enter/Esc)");f.style.marginTop="8px";f.className="geBtn gePrimaryBtn";m.appendChild(f);mxEvent.addListener(n,"keyup",function(a){13!=a.keyCode&&27!=a.keyCode||h.funct()});this.window=new mxWindow(mxResources.get("tags"),m,b,c,d,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()?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)):g.container.focus()}))},AuthDialog=function(a,b,c,d){var e=document.createElement("div");e.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding=
-"0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("authorizationRequired"));var l="Unknown",m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.marginRight="10px";b==a.drive?(l=mxResources.get("googleDrive"),m.src=IMAGE_PATH+"/google-drive-logo-white.svg"):b==a.dropbox?(l=mxResources.get("dropbox"),m.src=IMAGE_PATH+"/dropbox-logo-white.svg"):b==a.oneDrive?(l=mxResources.get("oneDrive"),m.src=IMAGE_PATH+"/onedrive-logo-white.svg"):
-b==a.gitHub?(l=mxResources.get("github"),m.src=IMAGE_PATH+"/github-logo-white.svg"):b==a.trello&&(l=mxResources.get("trello"),m.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizeThisAppIn",[l]));var n=document.createElement("input");n.setAttribute("type","checkbox");l=mxUtils.button(mxResources.get("authorize"),function(){d(n.checked)});l.insertBefore(m,l.firstChild);l.style.marginTop="6px";l.className="geBigButton";e.appendChild(g);e.appendChild(a);
-e.appendChild(l);c&&(c=document.createElement("p"),c.style.marginTop="20px",c.appendChild(n),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberMe")),c.appendChild(g),e.appendChild(c),n.checked=!0,n.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)}));this.container=e},MoreShapesDialog=function(a,b,c){c=null!=c?c:a.sidebar.entries;var d=document.createElement("div"),e=[];if(null!=a.sidebar.customEntries)for(var g=0;g<a.sidebar.customEntries.length;g++){for(var l=
-a.sidebar.customEntries[g],m={title:a.getResource(l.title),entries:[]},n=0;n<l.entries.length;n++){var f=l.entries[n];m.entries.push({id:f.id,title:a.getResource(f.title),desc:a.getResource(f.desc),image:f.preview})}e.push(m)}for(g=0;g<c.length;g++)if(null==a.sidebar.enabledLibraries)e.push(c[g]);else{m={title:c[g].title,entries:[]};for(n=0;n<c[g].entries.length;n++)0<=mxUtils.indexOf(a.sidebar.enabledLibraries,c[g].entries[n].id)&&m.entries.push(c[g].entries[n]);0<m.entries.length&&e.push(m)}c=e;
-if(b){n=document.createElement("div");n.className="geDialogTitle";mxUtils.write(n,mxResources.get("shapes"));n.style.position="absolute";n.style.top="0px";n.style.left="0px";n.style.lineHeight="40px";n.style.height="40px";n.style.right="0px";mxClient.IS_QUIRKS&&(n.style.width="718px");var h=document.createElement("div"),k=document.createElement("div");h.style.position="absolute";h.style.top="40px";h.style.left="0px";h.style.width="202px";h.style.bottom="60px";h.style.overflow="auto";mxClient.IS_QUIRKS&&
-(h.style.height="437px",h.style.marginTop="1px");k.style.position="absolute";k.style.left="202px";k.style.right="0px";k.style.top="40px";k.style.bottom="60px";k.style.overflow="auto";k.style.borderLeft="1px solid rgb(211, 211, 211)";k.style.textAlign="center";mxClient.IS_QUIRKS&&(k.style.width=parseInt(n.style.width)-202+"px",k.style.height=h.style.height,k.style.marginTop=h.style.marginTop);var q=null,u=[],p=document.createElement("div");p.style.position="relative";p.style.left="0px";p.style.right=
-"0px";for(g=0;g<c.length;g++)(function(b){var c=p.cloneNode(!1);c.style.fontWeight="bold";c.style.backgroundColor="dark"==uiTheme?"#505759":"#e5e5e5";c.style.padding="6px 0px 6px 20px";mxUtils.write(c,b.title);h.appendChild(c);for(var d=0;d<b.entries.length;d++)(function(b){var c=p.cloneNode(!1);c.style.cursor="pointer";c.style.padding="4px 0px 4px 20px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.checked=a.sidebar.isEntryVisible(b.id);f.defaultChecked=f.checked;c.appendChild(f);
-mxUtils.write(c," "+b.title);h.appendChild(c);var e=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName){k.style.textAlign="center";k.style.padding="0px";k.style.color="";k.innerHTML="";if(null!=b.desc){var d=document.createElement("pre");d.style.boxSizing="border-box";d.style.fontFamily="inherit";d.style.margin="20px";d.style.right="0px";d.style.textAlign="left";mxUtils.write(d,b.desc);k.appendChild(d)}null!=b.imageCallback?b.imageCallback(k):null!=b.image?k.innerHTML+='<img border="0" src="'+
-b.image+'"/>':null==b.desc&&(k.style.padding="20px",k.style.color="rgb(179, 179, 179)",mxUtils.write(k,mxResources.get("noPreview")));null!=q&&(q.style.backgroundColor="");q=c;q.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(c,"click",e);mxEvent.addListener(c,"dblclick",function(a){f.checked=!f.checked;mxEvent.consume(a)});u.push(function(){return f.checked?b.id:null});0==g&&0==d&&e()})(b.entries[d])})(c[g]);d.style.padding="30px";d.appendChild(n);
-d.appendChild(h);d.appendChild(k);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right="0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";mxClient.IS_QUIRKS&&(c.style.width=n.style.width,c.style.paddingTop="12px");var v=document.createElement("input");v.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)n=document.createElement("span"),
-n.style.paddingRight="20px",n.appendChild(v),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),v.checked=!0,v.defaultChecked=!0,mxEvent.addListener(n,"click",function(a){mxEvent.getSource(a)!=v&&(v.checked=!v.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(n.style.position="relative",n.style.top="-6px"),c.appendChild(n);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=
-[],c=0;c<u.length;c++){var d=u[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),v.checked,!0)});b.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),n=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";m=document.createElement("tr");y.style.width="100%";b=document.createElement("td");var e=document.createElement("td"),l=document.createElement("td"),A=mxUtils.bind(this,function(b,c,d){var f=document.createElement("input");
-f.type="checkbox";y.appendChild(f);f.checked=a.sidebar.isEntryVisible(d);var h=document.createElement("span");mxUtils.write(h,c);c=document.createElement("div");c.style.display="block";c.appendChild(f);c.appendChild(h);mxEvent.addListener(h,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return f.checked?d:null}});m.appendChild(b);m.appendChild(e);m.appendChild(l);n.appendChild(m);y.appendChild(n);for(var u=[],t=0,g=0;g<c.length;g++)for(n=0;n<c[g].entries.length;n++)t++;
-for(var w=[b,e,l],x=0,g=0;g<c.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];u.push(A(w[Math.floor(x/(t/3))],c.title,c.id));x++}})(c[g]);d.appendChild(y);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";v=document.createElement("input");isLocalStorage&&(v.setAttribute("type","checkbox"),v.checked=!0,v.defaultChecked=!0,c.appendChild(v),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),c.appendChild(n),
-mxEvent.addListener(n,"click",function(a){v.checked=!v.checked;mxEvent.consume(a)}));d.appendChild(c);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<u.length;c++){var d=u[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",v.checked);a.hideDialog()});b.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px";
-c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(n),c.appendChild(b)):(c.appendChild(b),c.appendChild(n));d.appendChild(c);this.container=d},PluginsDialog=function(a){function b(){if(0==e.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var c=0;c<e.length;c++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var g=document.createElement("span");g.className="geSprite geSprite-delete";g.style.position="relative";g.style.cursor="pointer";g.style.top=
+(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"))}});F.className="geBtn";F.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=B&&a.confirm(mxResources.get("areYouSure"),function(){null!=c?c(B):a.spinner.spin(document.body,mxResources.get("restoring"))&&p.save(!0,function(b){a.spinner.stop();
+a.replaceFileData(B);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 G=document.createElement("select");G.setAttribute("disabled","disabled");G.style.maxWidth="80px";G.style.position="relative";G.style.top="-2px";G.style.verticalAlign="bottom";G.style.marginRight="6px";G.style.display="none";var I=null;mxEvent.addListener(G,"change",function(a){null!=
+I&&(I(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!=c&&(A.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=v&&a.openLink(v.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled",
+"disabled");null!=c&&(D.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 H=document.createElement("div");H.className="geToolbarContainer";H.style.backgroundColor="transparent";H.style.padding="2px";H.style.border="none";H.style.left="199px";H.style.top="442px";var M=null;if(null!=b&&0<b.length){k.style.cursor="move";var K=document.createElement("table");K.style.border=
+"1px solid lightGray";K.style.borderCollapse="collapse";K.style.borderSpacing="0px";K.style.width="100%";var T=document.createElement("tbody"),P=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(m=mxUtils.indexOf(a.pages,a.currentPage));for(var S=b.length-1;0<=S;S--){var aa=function(c){var d=new Date(c.modifiedDate),n=null;if(0<=d.getTime()){var e=function(b){u.stop();var c=mxUtils.parseXml(b),e=a.editor.extractGraphModel(c.documentElement,!0);if(null!=e){var g=function(b){null!=b&&(b=
+q(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},q=function(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,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};G.style.display="none";G.innerHTML="";y=c;B=b;f=parseSelectFunction=null;h=0;if("mxfile"==e.nodeName){c=e.getElementsByTagName("diagram");f=[];for(b=0;b<c.length;b++)f.push(c[b]);
+h=Math.min(m,f.length-1);0<f.length&&g(f[h]);if(1<f.length)for(G.removeAttribute("disabled"),G.style.display="",b=0;b<f.length;b++)c=document.createElement("option"),mxUtils.write(c,f[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==h&&c.setAttribute("selected","selected"),G.appendChild(c);I=function(){h=m=parseInt(G.value);g(f[m])}}else q(e);z.innerHTML="";mxUtils.write(z,d.toLocaleDateString()+" "+d.toLocaleTimeString());z.setAttribute("title",n.getAttribute("title"));
+t.removeAttribute("disabled");w.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=p&&p.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),F.removeAttribute("disabled"),D.removeAttribute("disabled"),A.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(w,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else G.style.display="none",G.innerHTML="",z.innerHTML="",mxUtils.write(z,mxResources.get("errorLoadingFile"))},
+n=document.createElement("tr");n.style.borderBottom="1px solid lightGray";n.style.fontSize="12px";n.style.cursor="pointer";var g=document.createElement("td");g.style.padding="6px";g.style.whiteSpace="nowrap";c==b[b.length-1]?mxUtils.write(g,mxResources.get("current")):d.toDateString()===P?mxUtils.write(g,d.toLocaleTimeString()):mxUtils.write(g,d.toLocaleDateString()+" "+d.toLocaleTimeString());n.appendChild(g);n.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+
+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(n,"click",function(a){v!=c&&(u.stop(),null!=q&&(q.style.backgroundColor=""),v=c,q=n,q.style.backgroundColor="#ebf2f9",B=y=null,z.removeAttribute("title"),z.innerHTML=mxResources.get("loading")+"...",k.style.backgroundColor="#ffffff",l.getModel().clear(),E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),w.setAttribute("disabled","disabled"),C.setAttribute("disabled",
+"disabled"),x.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(w,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),u.spin(k),c.getXml(function(a){v==c&&e(a)},function(a){u.stop();G.style.display="none";G.innerHTML="";z.innerHTML="";mxUtils.write(z,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(n,"dblclick",function(a){D.click();
+window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(n)}return n}(b[S]);null!=aa&&S==b.length-1&&(M=aa)}K.appendChild(T);g.appendChild(K)}else null==p||null==a.drive&&p.constructor==window.DriveFile||null==a.dropbox&&p.constructor==window.DropboxFile?(k.style.display="none",H.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",H.style.display="none",mxUtils.write(g,
+mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";H.appendChild(G);H.appendChild(t);H.appendChild(w);H.appendChild(C);H.appendChild(x);a.editor.cancelFirst?(e.appendChild(g),e.appendChild(F),e.appendChild(A),e.appendChild(E),e.appendChild(D)):(e.appendChild(F),e.appendChild(A),e.appendChild(E),e.appendChild(D),e.appendChild(g));d.appendChild(e);d.appendChild(H);d.appendChild(z);this.container=
+d},DraftDialog=function(a,b,c,d,e,g,k,l){var m=document.createElement("div"),f=document.createElement("div");f.style.marginTop="0px";f.style.whiteSpace="nowrap";f.style.overflow="auto";mxUtils.write(f,b);m.appendChild(f);var h=document.createElement("div");h.style.position="absolute";h.style.border="1px solid lightGray";h.style.marginTop="10px";h.style.width="640px";h.style.top="46px";h.style.bottom="74px";h.style.overflow="hidden";mxEvent.disableContextMenu(h);m.appendChild(h);var n=new Graph(h);
+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(c);var u=a.editor.extractGraphModel(b.documentElement,!0),p=0,q=null,v=n.getGlobalVariable;n.getGlobalVariable=function(a){return"page"==a&&null!=q&&null!=q[p]?q[p].getAttribute("name"):"pagenumber"==a?p+1:v.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);c=mxUtils.button("",function(){n.zoomOut()});c.className="geSprite geSprite-zoomout";c.setAttribute("title",mxResources.get("zoomOut"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);f=mxUtils.button("",function(){n.maxFitScale=8;n.fit(8);n.center()});f.className="geSprite geSprite-fit";f.setAttribute("title",
+mxResources.get("fit"));f.style.outline="none";f.style.border="none";f.style.margin="2px";mxUtils.setOpacity(f,60);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(k||mxResources.get("discard"),e);e.className="geBtn";var B=document.createElement("select");B.style.maxWidth="80px";B.style.position=
+"relative";B.style.top="-2px";B.style.verticalAlign="bottom";B.style.marginRight="6px";B.style.display="none";d=mxUtils.button(g||mxResources.get("edit"),d);d.className="geBtn gePrimaryBtn";g=document.createElement("div");g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";k=document.createElement("div");k.className="geToolbarContainer";k.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";h.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(B,"change",function(a){p=parseInt(B.value);c(q[p]);mxEvent.consume(a)});if("mxfile"==u.nodeName){var d=u.getElementsByTagName("diagram");
+q=[];for(var f=0;f<d.length;f++)q.push(d[f]);0<q.length&&c(q[p]);if(1<q.length)for(B.style.display="",f=0;f<q.length;f++)d=document.createElement("option"),mxUtils.write(d,q[f].getAttribute("name")||mxResources.get("pageWithNumber",[f+1])),d.setAttribute("value",f),f==p&&d.setAttribute("selected","selected"),B.appendChild(d)}else b(u)};k.appendChild(B);k.appendChild(b);k.appendChild(c);k.appendChild(y);k.appendChild(f);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?(g.appendChild(b),null!=l&&g.appendChild(l),g.appendChild(e),g.appendChild(d)):(g.appendChild(d),g.appendChild(e),null!=l&&g.appendChild(l),g.appendChild(b));m.appendChild(g);m.appendChild(k);this.container=m},FindWindow=function(a,b,c,d,e){function g(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 f=
+mxUtils.trim(b[d].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&f.substring(0,c.length)===c||null!=a&&a.test(f))return!0}}return!1}function k(){var a=m.model.getDescendants(m.model.getRoot()),b=u.value.toLowerCase(),c=p.checked?new RegExp(b):null,d=null;f!=b&&(f=b,h=null);var n=null==h;if(0<b.length)for(var e=0;e<a.length;e++){var k=m.view.getState(a[e]);if(null!=k&&null!=k.cell.value&&(n||null==d)&&(m.model.isVertex(k.cell)||m.model.isEdge(k.cell))&&(m.isHtmlLabel(k.cell)?
+(q.innerHTML=m.getLabel(k.cell),label=mxUtils.extractTextWithWhitespace([q])):label=m.getLabel(k.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===b||g(c,k.cell,b))||null!=c&&(c.test(label)||g(c,k.cell,b))))if(n){d=k;break}else null==d&&(d=k);n=n||k==h}null!=d?(h=d,m.scrollCellToVisible(h.cell),m.isEnabled()?m.setSelectionCell(h.cell):m.highlightCell(h.cell)):m.isEnabled()&&m.clearSelection();return 0==b.length||null!=d}
+var l=a.actions.get("find"),m=a.editor.graph,f=null,h=null,n=document.createElement("div");n.style.userSelect="none";n.style.overflow="hidden";n.style.padding="10px";n.style.height="100%";var u=document.createElement("input");u.setAttribute("placeholder",mxResources.get("find"));u.setAttribute("type","text");u.style.marginTop="4px";u.style.marginBottom="6px";u.style.width="200px";u.style.fontSize="12px";u.style.borderRadius="4px";u.style.padding="6px";n.appendChild(u);mxUtils.br(n);var p=document.createElement("input");
+p.setAttribute("type","checkbox");p.style.marginRight="4px";n.appendChild(p);mxUtils.write(n,mxResources.get("regularExpression"));var q=document.createElement("div");mxUtils.br(n);var v=mxUtils.button(mxResources.get("reset"),function(){u.value="";u.style.backgroundColor="";f=h=null;u.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{u.style.backgroundColor=
+k()?"":"#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(u,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(f!=u.value.toLowerCase()||13==a.keyCode)try{u.style.backgroundColor=k()?"":"#ffcfcf"}catch(B){u.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,c,d,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()?(u.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)):m.container.focus()}))},
+TagsWindow=function(a,b,c,d,e){var g=a.editor.graph,k="tags",l=document.createElement("div");l.style.userSelect="none";l.style.overflow="hidden";l.style.padding="10px";l.style.height="100%";var m=document.createElement("input");m.setAttribute("placeholder",mxResources.get("allTags"));m.setAttribute("type","text");m.style.marginTop="4px";m.style.width="260px";m.style.fontSize="12px";m.style.borderRadius="4px";m.style.padding="6px";l.appendChild(m);if(!a.isOffline()||mxClient.IS_CHROMEAPP){m.style.width=
+"240px";var f=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");f.firstChild.style.marginBottom="6px";f.style.marginLeft="6px";l.appendChild(f)}mxEvent.addListener(m,"dblclick",function(){var b=new FilenameDialog(a,k,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(k=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});m.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(l);
+f=mxUtils.button(mxResources.get("hide"),function(){var a=g.getCellsForTags(m.value.split(" "),void 0,k);g.setCellsVisible(a,!1)});f.setAttribute("title",mxResources.get("hide"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";l.appendChild(f);f=mxUtils.button(mxResources.get("show"),function(){var a=g.getCellsForTags(m.value.split(" "),void 0,k);g.setCellsVisible(a,!0);if(g.isEnabled())g.setSelectionCells(a);else for(var b=0;b<a.length;b++)g.highlightCell(a[b])});f.setAttribute("title",
+mxResources.get("show"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";l.appendChild(f);var h=a.actions.get("tags"),f=mxUtils.button(mxResources.get("close"),function(){h.funct()});f.setAttribute("title",mxResources.get("close")+" (Enter/Esc)");f.style.marginTop="8px";f.className="geBtn gePrimaryBtn";l.appendChild(f);mxEvent.addListener(m,"keyup",function(a){13!=a.keyCode&&27!=a.keyCode||h.funct()});this.window=new mxWindow(mxResources.get("tags"),l,b,c,d,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()?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):g.container.focus()}))},AuthDialog=function(a,b,c,d){var e=document.createElement("div");e.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding=
+"0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("authorizationRequired"));var k="Unknown",l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.marginRight="10px";b==a.drive?(k=mxResources.get("googleDrive"),l.src=IMAGE_PATH+"/google-drive-logo-white.svg"):b==a.dropbox?(k=mxResources.get("dropbox"),l.src=IMAGE_PATH+"/dropbox-logo-white.svg"):b==a.oneDrive?(k=mxResources.get("oneDrive"),l.src=IMAGE_PATH+"/onedrive-logo-white.svg"):
+b==a.gitHub?(k=mxResources.get("github"),l.src=IMAGE_PATH+"/github-logo-white.svg"):b==a.trello&&(k=mxResources.get("trello"),l.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizeThisAppIn",[k]));var m=document.createElement("input");m.setAttribute("type","checkbox");k=mxUtils.button(mxResources.get("authorize"),function(){d(m.checked)});k.insertBefore(l,k.firstChild);k.style.marginTop="6px";k.className="geBigButton";e.appendChild(g);e.appendChild(a);
+e.appendChild(k);c&&(c=document.createElement("p"),c.style.marginTop="20px",c.appendChild(m),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberMe")),c.appendChild(g),e.appendChild(c),m.checked=!0,m.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){m.checked=!m.checked;mxEvent.consume(a)}));this.container=e},MoreShapesDialog=function(a,b,c){c=null!=c?c:a.sidebar.entries;var d=document.createElement("div"),e=[];if(null!=a.sidebar.customEntries)for(var g=0;g<a.sidebar.customEntries.length;g++){for(var k=
+a.sidebar.customEntries[g],l={title:a.getResource(k.title),entries:[]},m=0;m<k.entries.length;m++){var f=k.entries[m];l.entries.push({id:f.id,title:a.getResource(f.title),desc:a.getResource(f.desc),image:f.preview})}e.push(l)}for(g=0;g<c.length;g++)if(null==a.sidebar.enabledLibraries)e.push(c[g]);else{l={title:c[g].title,entries:[]};for(m=0;m<c[g].entries.length;m++)0<=mxUtils.indexOf(a.sidebar.enabledLibraries,c[g].entries[m].id)&&l.entries.push(c[g].entries[m]);0<l.entries.length&&e.push(l)}c=e;
+if(b){m=document.createElement("div");m.className="geDialogTitle";mxUtils.write(m,mxResources.get("shapes"));m.style.position="absolute";m.style.top="0px";m.style.left="0px";m.style.lineHeight="40px";m.style.height="40px";m.style.right="0px";mxClient.IS_QUIRKS&&(m.style.width="718px");var h=document.createElement("div"),n=document.createElement("div");h.style.position="absolute";h.style.top="40px";h.style.left="0px";h.style.width="202px";h.style.bottom="60px";h.style.overflow="auto";mxClient.IS_QUIRKS&&
+(h.style.height="437px",h.style.marginTop="1px");n.style.position="absolute";n.style.left="202px";n.style.right="0px";n.style.top="40px";n.style.bottom="60px";n.style.overflow="auto";n.style.borderLeft="1px solid rgb(211, 211, 211)";n.style.textAlign="center";mxClient.IS_QUIRKS&&(n.style.width=parseInt(m.style.width)-202+"px",n.style.height=h.style.height,n.style.marginTop=h.style.marginTop);var u=null,p=[],q=document.createElement("div");q.style.position="relative";q.style.left="0px";q.style.right=
+"0px";for(g=0;g<c.length;g++)(function(b){var c=q.cloneNode(!1);c.style.fontWeight="bold";c.style.backgroundColor="dark"==uiTheme?"#505759":"#e5e5e5";c.style.padding="6px 0px 6px 20px";mxUtils.write(c,b.title);h.appendChild(c);for(var d=0;d<b.entries.length;d++)(function(b){var c=q.cloneNode(!1);c.style.cursor="pointer";c.style.padding="4px 0px 4px 20px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.checked=a.sidebar.isEntryVisible(b.id);f.defaultChecked=f.checked;c.appendChild(f);
+mxUtils.write(c," "+b.title);h.appendChild(c);var e=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName){n.style.textAlign="center";n.style.padding="0px";n.style.color="";n.innerHTML="";if(null!=b.desc){var d=document.createElement("pre");d.style.boxSizing="border-box";d.style.fontFamily="inherit";d.style.margin="20px";d.style.right="0px";d.style.textAlign="left";mxUtils.write(d,b.desc);n.appendChild(d)}null!=b.imageCallback?b.imageCallback(n):null!=b.image?n.innerHTML+='<img border="0" src="'+
+b.image+'"/>':null==b.desc&&(n.style.padding="20px",n.style.color="rgb(179, 179, 179)",mxUtils.write(n,mxResources.get("noPreview")));null!=u&&(u.style.backgroundColor="");u=c;u.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(c,"click",e);mxEvent.addListener(c,"dblclick",function(a){f.checked=!f.checked;mxEvent.consume(a)});p.push(function(){return f.checked?b.id:null});0==g&&0==d&&e()})(b.entries[d])})(c[g]);d.style.padding="30px";d.appendChild(m);
+d.appendChild(h);d.appendChild(n);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right="0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";mxClient.IS_QUIRKS&&(c.style.width=m.style.width,c.style.paddingTop="12px");var v=document.createElement("input");v.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)m=document.createElement("span"),
+m.style.paddingRight="20px",m.appendChild(v),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),v.checked=!0,v.defaultChecked=!0,mxEvent.addListener(m,"click",function(a){mxEvent.getSource(a)!=v&&(v.checked=!v.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(m.style.position="relative",m.style.top="-6px"),c.appendChild(m);m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=
+[],c=0;c<p.length;c++){var d=p[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),v.checked,!0)});b.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),m=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";l=document.createElement("tr");y.style.width="100%";b=document.createElement("td");var e=document.createElement("td"),k=document.createElement("td"),B=mxUtils.bind(this,function(b,c,d){var f=document.createElement("input");
+f.type="checkbox";y.appendChild(f);f.checked=a.sidebar.isEntryVisible(d);var h=document.createElement("span");mxUtils.write(h,c);c=document.createElement("div");c.style.display="block";c.appendChild(f);c.appendChild(h);mxEvent.addListener(h,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return f.checked?d:null}});l.appendChild(b);l.appendChild(e);l.appendChild(k);m.appendChild(l);y.appendChild(m);for(var p=[],t=0,g=0;g<c.length;g++)for(m=0;m<c[g].entries.length;m++)t++;
+for(var w=[b,e,k],x=0,g=0;g<c.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];p.push(B(w[Math.floor(x/(t/3))],c.title,c.id));x++}})(c[g]);d.appendChild(y);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";v=document.createElement("input");isLocalStorage&&(v.setAttribute("type","checkbox"),v.checked=!0,v.defaultChecked=!0,c.appendChild(v),m=document.createElement("span"),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),c.appendChild(m),
+mxEvent.addListener(m,"click",function(a){v.checked=!v.checked;mxEvent.consume(a)}));d.appendChild(c);m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<p.length;c++){var d=p[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",v.checked);a.hideDialog()});b.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px";
+c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(m),c.appendChild(b)):(c.appendChild(b),c.appendChild(m));d.appendChild(c);this.container=d},PluginsDialog=function(a){function b(){if(0==e.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var c=0;c<e.length;c++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var g=document.createElement("span");g.className="geSprite geSprite-delete";g.style.position="relative";g.style.cursor="pointer";g.style.top=
 "5px";g.style.marginRight="4px";g.style.display="inline-block";f.appendChild(g);mxUtils.write(f,e[c]);d.appendChild(f);mxUtils.br(d);mxEvent.addListener(g,"click",function(c){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+e[c]+'"?',function(){e.splice(c,1);b()})}}(c))}}}var c=document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var e=mxSettings.getPlugins().slice();c.appendChild(d);b();var g=mxUtils.button(mxResources.get("add"),
 function(){var c="",d=urlParams.p;if(null!=d&&0<d.length){for(var f=d.split(";"),d=0;d<f.length;d++){var g=App.pluginRegistry[f[d]];null!=g&&(c+=g+";")}";"==c.charAt(c.length-1)&&(c=c.substring(0,c.length-1))}c=new FilenameDialog(a,c,mxResources.get("add"),function(a){if(null!=a&&0<a.length){f=a.split(";");for(a=0;a<f.length;a++){var c=f[a],d=App.pluginRegistry[c];null!=d&&(c=d);0<c.length&&0>mxUtils.indexOf(e,c)&&e.push(c)}b()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(c.container,
-300,80,!0,!0);c.init()});g.className="geBtn";var l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";var m=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(e);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});m.className="geBtn gePrimaryBtn";var n=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")});n.className="geBtn";a.isOffline()&&
-!mxClient.IS_CHROMEAPP&&(n.style.display="none");var f=document.createElement("div");f.style.marginTop="14px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(l),f.appendChild(n),f.appendChild(g),f.appendChild(m)):(f.appendChild(n),f.appendChild(g),f.appendChild(m),f.appendChild(l));c.appendChild(f);this.container=c},CropImageDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("table"),g=document.createElement("tbody"),l=document.createElement("tr"),m=
-document.createElement("td");m.style.whiteSpace="nowrap";m.setAttribute("colspan","2");mxUtils.write(m,mxResources.get("loading")+"...");l.appendChild(m);g.appendChild(l);var l=document.createElement("tr"),n=document.createElement("td"),f=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("left")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";this.init=function(){h.focus();h.select()};f.appendChild(h);
-l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value="0";f.appendChild(k);l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("right")+":");var q=
-document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value="0";f.appendChild(q);l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("bottom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value="0";f.appendChild(u);l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");
-n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("circle")+":");l.appendChild(n);var p=document.createElement("input");p.setAttribute("type","checkbox");f.appendChild(p);l.appendChild(f);g.appendChild(l);e.appendChild(g);d.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"),d=b.getContext("2d"),f=v.width,
-e=v.height,g=parseInt(h.value),m=parseInt(k.value),f=Math.max(1,f-g-parseInt(q.value)),e=Math.max(1,e-m-parseInt(u.value));b.width=f;b.height=e;p.checked&&(d.fillStyle="#000000",d.arc(f/2,e/2,Math.min(f/2,e/2),0,2*Math.PI),d.fill(),d.globalCompositeOperation="source-in");d.drawImage(v,g,m,f,e,0,0,f,e);c(b.toDataURL())});y.setAttribute("disabled","disabled");v.onload=function(){y.removeAttribute("disabled");m.innerHTML="";mxUtils.write(m,mxResources.get("width")+": "+v.width+" "+mxResources.get("height")+
-": "+v.height)};v.src=b;mxEvent.addListener(d,"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));d.appendChild(b);this.container=d},EditGeometryDialog=function(a,b){var c=a.editor.graph,d=1==b.length?c.getCellGeometry(b[0]):null,e=document.createElement("div"),g=document.createElement("table"),l=document.createElement("tbody"),
-m=document.createElement("tr"),n=document.createElement("td"),f=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var h=document.createElement("input");h.setAttribute("type","checkbox");null!=d&&d.relative&&(h.setAttribute("checked","checked"),h.defaultChecked=!0);this.init=function(){h.focus()};f.appendChild(h);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");
-mxUtils.write(n,mxResources.get("left")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value=null!=d?d.x:"";f.appendChild(k);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=d?d.y:"";f.appendChild(q);m.appendChild(n);
-m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("dx")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=d&&null!=d.offset?d.offset.x:"";f.appendChild(u);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("dy")+
-":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d&&null!=d.offset?d.offset.y:"";f.appendChild(p);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("width")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=d?d.width:"";f.appendChild(v);m.appendChild(n);m.appendChild(f);
-l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=d?d.height:"";f.appendChild(y);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var A=document.createElement("input");
-A.setAttribute("type","text");A.style.width="100px";A.value=1==b.length?mxUtils.getValue(c.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";f.appendChild(A);m.appendChild(n);m.appendChild(f);l.appendChild(m);g.appendChild(l);e.appendChild(g);d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var f=c.getCellGeometry(b[d]);null!=
-f&&(f=f.clone(),c.isCellMovable(b[d])&&(f.relative=h.checked,0<mxUtils.trim(k.value).length&&(f.x=Number(k.value)),0<mxUtils.trim(q.value).length&&(f.y=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(u.value)),0<mxUtils.trim(p.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(p.value))),c.isCellResizable(b[d])&&(0<mxUtils.trim(v.value).length&&(f.width=Number(v.value)),0<mxUtils.trim(y.value).length&&(f.height=Number(y.value))),
-c.getModel().setGeometry(b[d],f));0<mxUtils.trim(A.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(A.value),[b[d]])}}finally{c.getModel().endUpdate()}});t.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&t.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(d),g.appendChild(t)):(g.appendChild(t),g.appendChild(d));e.appendChild(g);this.container=e},LibraryDialog=function(a,
-b,c,d,e,g){function l(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 m(b,c,d,f,k,e,g,q,n){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==v[b]){var C=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled"));
-D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};u.style.backgroundImage="";p.style.display="none";var A=k,z=e;if(k>a.maxImageSize||e>a.maxImageSize){var B=Math.min(1,Math.min(a.maxImageSize/Math.max(1,k)),a.maxImageSize/Math.max(1,e));k*=B;e*=B}A>z?(z=Math.round(100*z/A),A=100):(A=Math.round(100*A/z),z=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 E=document.createElement("img");E.setAttribute("src",w.convert(b));E.style.width=A+"px";E.style.height=z+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-z)/2)+"px";E.style.paddingLeft=Math.floor((100-A)/2)+"px";F.appendChild(E)}else if(null!=g){var G=a.stringToCells(a.editor.graph.decompress(g.xml));0<G.length&&(a.sidebar.createThumb(G,100,100,F,null,!0,!1),F.firstChild.style.display=mxClient.IS_QUIRKS?
+300,80,!0,!0);c.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var l=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(e);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});l.className="geBtn gePrimaryBtn";var m=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")});m.className="geBtn";a.isOffline()&&
+!mxClient.IS_CHROMEAPP&&(m.style.display="none");var f=document.createElement("div");f.style.marginTop="14px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(k),f.appendChild(m),f.appendChild(g),f.appendChild(l)):(f.appendChild(m),f.appendChild(g),f.appendChild(l),f.appendChild(k));c.appendChild(f);this.container=c},CropImageDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("table"),g=document.createElement("tbody"),k=document.createElement("tr"),l=
+document.createElement("td");l.style.whiteSpace="nowrap";l.setAttribute("colspan","2");mxUtils.write(l,mxResources.get("loading")+"...");k.appendChild(l);g.appendChild(k);var k=document.createElement("tr"),m=document.createElement("td"),f=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("left")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";this.init=function(){h.focus();h.select()};f.appendChild(h);
+k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");m=document.createElement("td");f=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";f.appendChild(n);k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("right")+":");var u=
+document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value="0";f.appendChild(u);k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("bottom")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value="0";f.appendChild(p);k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");
+m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("circle")+":");k.appendChild(m);var q=document.createElement("input");q.setAttribute("type","checkbox");f.appendChild(q);k.appendChild(f);g.appendChild(k);e.appendChild(g);d.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"),d=b.getContext("2d"),f=v.width,
+e=v.height,g=parseInt(h.value),k=parseInt(n.value),f=Math.max(1,f-g-parseInt(u.value)),e=Math.max(1,e-k-parseInt(p.value));b.width=f;b.height=e;q.checked&&(d.fillStyle="#000000",d.arc(f/2,e/2,Math.min(f/2,e/2),0,2*Math.PI),d.fill(),d.globalCompositeOperation="source-in");d.drawImage(v,g,k,f,e,0,0,f,e);c(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(d,"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));d.appendChild(b);this.container=d},EditGeometryDialog=function(a,b){var c=a.editor.graph,d=1==b.length?c.getCellGeometry(b[0]):null,e=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"),
+l=document.createElement("tr"),m=document.createElement("td"),f=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("relative")+":");var h=document.createElement("input");h.setAttribute("type","checkbox");null!=d&&d.relative&&(h.setAttribute("checked","checked"),h.defaultChecked=!0);this.init=function(){h.focus()};f.appendChild(h);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");
+mxUtils.write(m,mxResources.get("left")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=d?d.x:"";f.appendChild(n);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("top")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=d?d.y:"";f.appendChild(u);l.appendChild(m);
+l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("dx")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d&&null!=d.offset?d.offset.x:"";f.appendChild(p);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("dy")+
+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=d&&null!=d.offset?d.offset.y:"";f.appendChild(q);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("width")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=d?d.width:"";f.appendChild(v);l.appendChild(m);l.appendChild(f);
+k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=d?d.height:"";f.appendChild(y);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("rotation")+":");var B=document.createElement("input");
+B.setAttribute("type","text");B.style.width="100px";B.value=1==b.length?mxUtils.getValue(c.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";f.appendChild(B);l.appendChild(m);l.appendChild(f);k.appendChild(l);g.appendChild(k);e.appendChild(g);d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var f=c.getCellGeometry(b[d]);null!=
+f&&(f=f.clone(),c.isCellMovable(b[d])&&(f.relative=h.checked,0<mxUtils.trim(n.value).length&&(f.x=Number(n.value)),0<mxUtils.trim(u.value).length&&(f.y=Number(u.value)),0<mxUtils.trim(p.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(p.value)),0<mxUtils.trim(q.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(q.value))),c.isCellResizable(b[d])&&(0<mxUtils.trim(v.value).length&&(f.width=Number(v.value)),0<mxUtils.trim(y.value).length&&(f.height=Number(y.value))),
+c.getModel().setGeometry(b[d],f));0<mxUtils.trim(B.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(B.value),[b[d]])}}finally{c.getModel().endUpdate()}});t.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&t.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(d),g.appendChild(t)):(g.appendChild(t),g.appendChild(d));e.appendChild(g);this.container=e},LibraryDialog=function(a,
+b,c,d,e,g){function k(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=p;)a=a.parentNode;var b=null;if(null!=a)for(var c=p.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function l(b,c,d,f,e,n,g,u,m){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==v[b]){var C=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled"));
+D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};p.style.backgroundImage="";q.style.display="none";var B=e,z=n;if(e>a.maxImageSize||n>a.maxImageSize){var A=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,n));e*=A;n*=A}B>z?(z=Math.round(100*z/B),B=100):(B=Math.round(100*B/z),z=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 E=document.createElement("img");E.setAttribute("src",w.convert(b));E.style.width=B+"px";E.style.height=z+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-z)/2)+"px";E.style.paddingLeft=Math.floor((100-B)/2)+"px";F.appendChild(E)}else if(null!=g){var G=a.stringToCells(a.editor.graph.decompress(g.xml));0<G.length&&(a.sidebar.createThumb(G,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.position="absolute";H.style.marginLeft="-12px";H.style.zIndex="1";H.style.cursor="pointer";mxEvent.addListener(H,"dragstart",function(a){mxEvent.consume(a)});(function(a,b,c){mxEvent.addListener(H,"click",function(d){v[b]=null;for(var f=
-0;f<h.length;f++)if(null!=h[f].data&&h[f].data==b||null!=h[f].xml&&null!=c&&h[f].xml==c.xml){h.splice(f,1);break}F.parentNode.removeChild(a);0==h.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,g);F.appendChild(H);F.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 M=null;null!=b?(M={data:b,w:k,h:e,title:n},null!=q&&(M.aspect=q),v[b]=E,h.push(M)):null!=g&&(g.aspect="fixed",h.push(g),M=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=t&&(t(),t=null,mxEvent.consume(a))});C();F.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});G=function(b){if(mxClient.IS_IOS||
+0;f<h.length;f++)if(null!=h[f].data&&h[f].data==b||null!=h[f].xml&&null!=c&&h[f].xml==c.xml){h.splice(f,1);break}F.parentNode.removeChild(a);0==h.length&&(p.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",q.style.display="");mxEvent.consume(d)});mxEvent.addListener(H,"dblclick",function(a){mxEvent.consume(a)})})(F,b,g);F.appendChild(H);F.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 M=null;null!=b?(M={data:b,w:e,h:n,title:m},null!=u&&(M.aspect=u),v[b]=E,h.push(M)):null!=g&&(g.aspect="fixed",h.push(g),M=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=t&&(t(),t=null,mxEvent.consume(a))});C();F.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,M.title||"",mxResources.get("ok"),function(a){null!=a&&(M.title=a,C())},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==M.title||0==M.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";M.title=D.innerHTML;C()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(F,"dblclick",G);u.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=g&&(H.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);y=l(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="";D.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(a){"hidden"==H.style.visibility&&(H.style.visibility="",D.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{k=!1;try{if(a.spinner.stop(),A=mxUtils.parseXml(b),"mxlibrary"==
-A.documentElement.nodeName){z=JSON.parse(mxUtils.getTextContent(A.documentElement));if(null!=z&&0<z.length)for(var K=0;K<z.length;K++)null!=z[K].xml?m(null,null,0,0,0,0,z[K]):m(z[K].data,null,0,0,z[K].w,z[K].h,null,"fixed",z[K].title);k=!0}else if("mxfile"==A.documentElement.nodeName){for(var I=A.documentElement.getElementsByTagName("diagram"),K=0;K<I.length;K++){var z=mxUtils.getTextContent(I[K]),G=a.stringToCells(a.editor.graph.decompress(z)),V=a.editor.graph.getBoundingBoxFromGeometry(G);m(null,
-null,0,0,0,0,{xml:z,w:V.width,h:V.height})}k=!0}}catch(J){}k||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(J){}return null}function n(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function f(b){b.stopPropagation();b.preventDefault();x=!1;A=l(b);if(null!=y)null!=A&&A<u.children.length?(h.splice(A>y?A-1:A,0,h.splice(y,1)[0]),u.insertBefore(u.children[y],u.children[A])):(h.push(h.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)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){m(c,null,0,0,a.width,a.height);u.scrollTop=u.scrollHeight})}b.stopPropagation();b.preventDefault()}var h=[];c=document.createElement("div");
-c.style.height="100%";var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.height="40px";c.appendChild(k);mxUtils.write(k,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)};k.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==h.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"));c.appendChild(p);var v={},y=null,A=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 w=new mxUrlConverter,x=!1;if(null!=d)for(b=0;b<d.length;b++)k=d[b],m(k.data,null,0,0,k.w,k.h,k,k.aspect,k.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,f,h,k,e,g,w,t){null!=t&&(/(\.vsdx)($|\?)/i.test(t.name)||/(\.vssx)($|\?)/i.test(t.name))?a.importVisio(t,mxUtils.bind(this,function(c){a.spinner.stop();m(c,d,f,
-h,k,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,t.name)?a.parseFile(t,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(m(c.responseText,d,f,h,k,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(m(c,d,f,h,k,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,
-g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",f);mxEvent.addListener(p,"dragover",n);mxEvent.addListener(p,"drop",f);c.appendChild(u);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.setAttribute("id","btnCancel");b.className="geBtn";a.editor.cancelFirst&&d.appendChild(b);k=mxUtils.button(mxResources.get("export"),
-function(){var b=a.createLibraryDataFromImages(h),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")});k.setAttribute("id","btnDownload");k.className="geBtn";d.appendChild(k);var z=document.createElement("input");z.setAttribute("multiple","multiple");z.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(z,
-"change",function(b){x=!1;a.importFiles(z.files,0,0,a.maxImageSize,function(a,c,d,f,h,k,e,g,w){C(b)(a,c,d,f,h,k,e,g,w);z.value=""});u.scrollTop=u.scrollHeight}),k=mxUtils.button(mxResources.get("import"),function(){null!=t&&(t(),t=null);z.click()}),k.setAttribute("id","btnAddImage"),k.className="geBtn",d.appendChild(k));k=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))}m(a,null,0,0,b,c);u.scrollTop=u.scrollHeight}})});k.setAttribute("id","btnAddImageUrl");k.className="geBtn";d.appendChild(k);this.saveBtnClickHandler=function(b,c,d,f){a.saveLibrary(b,c,d,f)};k=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=t&&(t(),t=null);this.saveBtnClickHandler(q.value,h,e,g)}));k.setAttribute("id","btnSave");k.className="geBtn gePrimaryBtn";d.appendChild(k);
-a.editor.cancelFirst||d.appendChild(b);c.appendChild(d);this.container=c},EditShapeDialog=function(a,b,c,d,e){d=null!=d?d:300;e=null!=e?e:120;var g,l,m=document.createElement("table"),n=document.createElement("tbody");m.style.cellPadding="4px";g=document.createElement("tr");l=document.createElement("td");l.setAttribute("colspan","2");l.style.fontSize="10pt";mxUtils.write(l,c);g.appendChild(l);n.appendChild(g);g=document.createElement("tr");l=document.createElement("td");var f=document.createElement("textarea");
-f.style.outline="none";f.style.resize="none";f.style.width=d-200+"px";f.style.height=e+"px";this.textarea=f;this.init=function(){f.focus();f.scrollTop=0};l.appendChild(f);g.appendChild(l);l=document.createElement("td");c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.top="6px";c.style.width="200px";c.style.height=e+4+"px";c.style.overflow="hidden";c.style.marginBottom="16px";mxEvent.disableContextMenu(c);l.appendChild(c);var h=new Graph(c);h.setEnabled(!1);
-var k=a.editor.graph.cloneCells([b])[0];h.addCells([k]);c=h.view.getState(k);var q="";null!=c.shape&&null!=c.shape.stencil&&(q=mxUtils.getPrettyXml(c.shape.stencil.desc));mxUtils.write(f,q||"");c=h.getGraphBounds();e=Math.min(160/c.width,(e-40)/c.height);h.view.scaleAndTranslate(e,20/e-c.x,20/e-c.y);g.appendChild(l);n.appendChild(g);g=document.createElement("tr");l=document.createElement("td");l.setAttribute("colspan","2");l.style.paddingTop="2px";l.style.whiteSpace="nowrap";l.setAttribute("align",
-"right");e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),c.className="geBtn",l.appendChild(c));var u=function(b,c,d){var h=f.value,k=mxUtils.parseXml(h),h=mxUtils.getPrettyXml(k.documentElement),k=k.documentElement.getElementsByTagName("parsererror");if(null!=k&&0<k.length)a.showError(mxResources.get("error"),
-mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),k=!b.model.contains(c),!d||k||h!=q){h=a.editor.graph.compress(h);b.getModel().beginUpdate();try{if(k){var e=a.editor.graph.getInsertPoint();c.geometry.x=e.x;c.geometry.y=e.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+h+")",[c])}catch(x){throw x;}finally{b.getModel().endUpdate()}k&&b.setSelectionCell(c)}};c=mxUtils.button(mxResources.get("preview"),function(){u(h,k,!1)});c.className="geBtn";
-l.appendChild(c);c=mxUtils.button(mxResources.get("apply"),function(){u(a.editor.graph,b,!0)});c.className="geBtn gePrimaryBtn";l.appendChild(c);a.editor.cancelFirst||l.appendChild(e);g.appendChild(l);n.appendChild(g);m.appendChild(n);this.container=m},CustomDialog=function(a,b,c,d,e,g,l,m){var n=document.createElement("div");n.appendChild(b);b=document.createElement("div");b.style.marginTop="16px";b.style.textAlign="center";null!=l&&b.appendChild(l);l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();
-null!=d&&d()});l.className="geBtn";m&&(l.style.display="none");a.editor.cancelFirst&&b.appendChild(l);a.isOffline()||null==g||(m=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),m.className="geBtn",b.appendChild(m));e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c()});b.appendChild(e);e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(l);n.appendChild(b);this.cancelBtn=l;this.okButton=e;this.container=n},TemplatesDialog=function(){var a=
+"true");D.focus();document.execCommand("selectAll",!1,null);t=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;C()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(F,"dblclick",G);p.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=g&&(H.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);y=k(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="";D.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(a){"hidden"==H.style.visibility&&(H.style.visibility="",D.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){z=JSON.parse(mxUtils.getTextContent(B.documentElement));if(null!=z&&0<z.length)for(var K=0;K<z.length;K++)null!=z[K].xml?l(null,null,0,0,0,0,z[K]):l(z[K].data,null,0,0,z[K].w,z[K].h,null,"fixed",z[K].title);e=!0}else if("mxfile"==B.documentElement.nodeName){for(var I=B.documentElement.getElementsByTagName("diagram"),K=0;K<I.length;K++){var z=mxUtils.getTextContent(I[K]),G=a.stringToCells(a.editor.graph.decompress(z)),V=a.editor.graph.getBoundingBoxFromGeometry(G);l(null,
+null,0,0,0,0,{xml:z,w:V.width,h:V.height})}e=!0}}catch(J){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(J){}return null}function m(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function f(b){b.stopPropagation();b.preventDefault();x=!1;B=k(b);if(null!=y)null!=B&&B<p.children.length?(h.splice(B>y?B-1:B,0,h.splice(y,1)[0]),p.insertBefore(p.children[y],p.children[B])):(h.push(h.splice(y,1)[0]),p.appendChild(p.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)||/(\.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);p.scrollTop=p.scrollHeight})}b.stopPropagation();b.preventDefault()}var h=[];c=document.createElement("div");
+c.style.height="100%";var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.height="40px";c.appendChild(n);mxUtils.write(n,mxResources.get("filename")+":");null==b&&(b=a.defaultLibraryName+".xml");var u=document.createElement("input");u.setAttribute("value",b);u.style.marginRight="20px";u.style.marginLeft="10px";u.style.width="500px";null==e||e.isRenamable()||u.setAttribute("disabled","true");this.init=function(){if(null==e||e.isRenamable())u.focus(),mxClient.IS_GC||mxClient.IS_FF||
+5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};n.appendChild(u);var p=document.createElement("div");p.style.borderWidth="1px 0px 1px 0px";p.style.borderColor="#d3d3d3";p.style.borderStyle="solid";p.style.marginTop="6px";p.style.overflow="auto";p.style.height="340px";p.style.backgroundPosition="center center";p.style.backgroundRepeat="no-repeat";0==h.length&&Graph.fileSupport&&(p.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var q=
+document.createElement("div");q.style.position="absolute";q.style.width="640px";q.style.top="260px";q.style.textAlign="center";q.style.fontSize="22px";q.style.color="#a0c3ff";mxUtils.write(q,mxResources.get("dragImagesHere"));c.appendChild(q);var v={},y=null,B=null,t=null;b=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=t&&(t(),t=null,mxEvent.consume(a))};mxEvent.addListener(p,"mousedown",b);mxEvent.addListener(p,"pointerdown",b);mxEvent.addListener(p,"touchstart",
+b);var w=new mxUrlConverter,x=!1;if(null!=d)for(b=0;b<d.length;b++)n=d[b],l(n.data,null,0,0,n.w,n.h,n,n.aspect,n.title);mxEvent.addListener(p,"dragleave",function(a){q.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==p||b==q){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});var C=function(b){return function(c,d,f,h,e,n,g,w,t){null!=t&&(/(\.vsdx)($|\?)/i.test(t.name)||/(\.vssx)($|\?)/i.test(t.name))?a.importVisio(t,mxUtils.bind(this,function(c){a.spinner.stop();l(c,d,f,
+h,e,n,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,t.name)?a.parseFile(t,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(l(c.responseText,d,f,h,e,n,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),p.scrollTop=p.scrollHeight))})):(l(c,d,f,h,e,n,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,
+g.lastIndexOf(".")).replace(/_/g," ")),p.scrollTop=p.scrollHeight)}};mxEvent.addListener(p,"dragover",m);mxEvent.addListener(p,"drop",f);mxEvent.addListener(q,"dragover",m);mxEvent.addListener(q,"drop",f);c.appendChild(p);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.setAttribute("id","btnCancel");b.className="geBtn";a.editor.cancelFirst&&d.appendChild(b);n=mxUtils.button(mxResources.get("export"),
+function(){var b=a.createLibraryDataFromImages(h),c=u.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";d.appendChild(n);var z=document.createElement("input");z.setAttribute("multiple","multiple");z.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(z,
+"change",function(b){x=!1;a.importFiles(z.files,0,0,a.maxImageSize,function(a,c,d,f,h,e,n,g,w){C(b)(a,c,d,f,h,e,n,g,w);z.value=""});p.scrollTop=p.scrollHeight}),n=mxUtils.button(mxResources.get("import"),function(){null!=t&&(t(),t=null);z.click()}),n.setAttribute("id","btnAddImage"),n.className="geBtn",d.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);p.scrollTop=p.scrollHeight}})});n.setAttribute("id","btnAddImageUrl");n.className="geBtn";d.appendChild(n);this.saveBtnClickHandler=function(b,c,d,f){a.saveLibrary(b,c,d,f)};n=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=t&&(t(),t=null);this.saveBtnClickHandler(u.value,h,e,g)}));n.setAttribute("id","btnSave");n.className="geBtn gePrimaryBtn";d.appendChild(n);
+a.editor.cancelFirst||d.appendChild(b);c.appendChild(d);this.container=c},EditShapeDialog=function(a,b,c,d,e){d=null!=d?d:300;e=null!=e?e:120;var g,k,l=document.createElement("table"),m=document.createElement("tbody");l.style.cellPadding="4px";g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";mxUtils.write(k,c);g.appendChild(k);m.appendChild(g);g=document.createElement("tr");k=document.createElement("td");var f=document.createElement("textarea");
+f.style.outline="none";f.style.resize="none";f.style.width=d-200+"px";f.style.height=e+"px";this.textarea=f;this.init=function(){f.focus();f.scrollTop=0};k.appendChild(f);g.appendChild(k);k=document.createElement("td");c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.top="6px";c.style.width="200px";c.style.height=e+4+"px";c.style.overflow="hidden";c.style.marginBottom="16px";mxEvent.disableContextMenu(c);k.appendChild(c);var h=new Graph(c);h.setEnabled(!1);
+var n=a.editor.graph.cloneCells([b])[0];h.addCells([n]);c=h.view.getState(n);var u="";null!=c.shape&&null!=c.shape.stencil&&(u=mxUtils.getPrettyXml(c.shape.stencil.desc));mxUtils.write(f,u||"");c=h.getGraphBounds();e=Math.min(160/c.width,(e-40)/c.height);h.view.scaleAndTranslate(e,20/e-c.x,20/e-c.y);g.appendChild(k);m.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.paddingTop="2px";k.style.whiteSpace="nowrap";k.setAttribute("align",
+"right");e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&k.appendChild(e);a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),c.className="geBtn",k.appendChild(c));var p=function(b,c,d){var h=f.value,e=mxUtils.parseXml(h),h=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||h!=u){h=a.editor.graph.compress(h);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("+h+")",[c])}catch(x){throw x;}finally{b.getModel().endUpdate()}e&&b.setSelectionCell(c)}};c=mxUtils.button(mxResources.get("preview"),function(){p(h,n,!1)});c.className="geBtn";
+k.appendChild(c);c=mxUtils.button(mxResources.get("apply"),function(){p(a.editor.graph,b,!0)});c.className="geBtn gePrimaryBtn";k.appendChild(c);a.editor.cancelFirst||k.appendChild(e);g.appendChild(k);m.appendChild(g);l.appendChild(m);this.container=l},CustomDialog=function(a,b,c,d,e,g,k,l){var m=document.createElement("div");m.appendChild(b);b=document.createElement("div");b.style.marginTop="16px";b.style.textAlign="center";null!=k&&b.appendChild(k);k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();
+null!=d&&d()});k.className="geBtn";l&&(k.style.display="none");a.editor.cancelFirst&&b.appendChild(k);a.isOffline()||null==g||(l=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),l.className="geBtn",b.appendChild(l));e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c()});b.appendChild(e);e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(k);m.appendChild(b);this.cancelBtn=k;this.okButton=e;this.container=m},TemplatesDialog=function(){var a=
 '<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" placeholder="'+mxResources.get("search",null,"Search")+'"></div><div class="geTemplatesList"><div class="geTempDlgNewDiagramlbl">'+mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+mxResources.get("templates",null,"Templates")+'</div></div><div class="geTempDlgContent"><div class="geTempDlgNewDiagramCat"><div class="geTempDlgNewDiagramCatLbl">'+
 mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgNewDiagramCatList"></div><div class="geTempDlgNewDiagramCatFooter"><div class="geTempDlgShowAllBtn">'+mxResources.get("showAll",null,"+ Show all")+'</div></div></div><div class="geTempDlgDiagramsList"><div class="geTempDlgDiagramsListHeader"><div class="geTempDlgDiagramsListTitle"></div><div class="geTempDlgDiagramsListBtns"><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge" data-id="myDiagramsBtn"><img src="/images/my-diagrams.svg" class="geTempDlgMyDiagramsBtnImg"> <span>'+
 mxResources.get("myDiagrams",null,"My diagrams")+'</span></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge geTempDlgRadioBtnActive" data-id="allDiagramsBtn"><img src="/images/all-diagrams-sel.svg" class="geTempDlgAllDiagramsBtnImg"> <span>'+mxResources.get("allDiagrams",null,"All diagrams")+'</span></div><div class="geTempDlgSpacer"> </div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall geTempDlgRadioBtnActive" data-id="tilesBtn"><img src="/images/tiles-sel.svg" class="geTempDlgTilesBtnImg"></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall" data-id="listBtn"><img src="/images/list.svg" class="geTempDlgListBtnImg"></div></div></div><div class="geTempDlgDiagramsTiles"></div></div></div><br style="clear:both;"/><div class="geTempDlgFooter"><span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">&#x1F6C8; '+
 mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagram can only be edited from the page that owns it.")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram",null,"Link to Diagram")+'</button><div class="geTempDlgCreateBtn">'+mxResources.get("create",null,"Create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel",null,"Cancel")+"</div></div>",b=document.createElement("div");b.innerHTML=a;b.className="geTemplateDlg";
 var a=window.innerWidth,c=window.innerHeight,d=987,e=712;.9*a<d&&(d=Math.max(.9*a,600),b.style.width=d+"px");.9*c<e&&(e=Math.max(.9*c,300),b.style.height=e+"px");this.width=d;this.height=e;this.container=b};
-TemplatesDialog.prototype.init=function(a,b,c,d,e,g,l,m,n,f){function h(){null!=E&&(E.style.fontWeight="normal",E.style.textDecoration="none",E=null)}function k(a,b,c,d,f,h,k){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(k?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+b).src="/images/"+c+"-sel.svg";C.querySelector("."+f).src="/images/"+
-h+".svg";return!0}function q(a){function b(a){Z.removeChild(d);C.removeChild(c);Z.scrollTop=h}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var d=document.createElement("div");d.className="geTempDlgDiagramPreviewBox";var f=document.createElement("img");f.src=a;d.appendChild(f);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn";
-a.setAttribute("title",mxResources.get("close"));d.appendChild(a);var h=Z.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(c,"click",b);Z.appendChild(d);Z.scrollTop=0;d.style.lineHeight=d.clientHeight+"px"}function u(a,b,c){if(null!=G){for(var d=G.className.split(" "),f=0;f<d.length;f++)if(-1<d[f].indexOf("Active")){d.splice(f,1);break}G.className=d.join(" ")}null!=a?(G=a,G.className+=" "+b,I=c,L.className="geTempDlgCreateBtn"):(I=G=null,L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
-function p(c){if(null!=I){var d=I;I=null;L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";d.isExternal?(1==c?f(d.url,d,"nameInput.value"):n(d.url,d,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+d.url,mxUtils.bind(this,function(c){200<=c.getStatus()&&299>=c.getStatus()&&(b(c.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function v(a){a=a?"":"none";for(var b=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<b.length;c++)b[c].style.display=
-a}function y(a,b,c){function d(){L.innerHTML=b?mxResources.get("create"):mxResources.get("copy");v(!b)}P.innerHTML="";u();M=a;var f=null;if(c){f=document.createElement("table");f.className="geTempDlgDiagramsListGrid";var h=document.createElement("tr"),k=document.createElement("th");k.style.width="50%";k.innerHTML=mxResources.get("diagram",null,"Diagram");h.appendChild(k);k=document.createElement("th");k.style.width="25%";k.innerHTML=mxResources.get("changedBy",null,"Changed By");h.appendChild(k);
-k=document.createElement("th");k.style.width="25%";k.innerHTML=mxResources.get("lastModifiedOn",null,"Last modified on");h.appendChild(k);f.appendChild(h);P.appendChild(f)}for(h=0;h<a.length;h++){a[h].isExternal=!b;var e=a[h].url,k=mxUtils.htmlEntities(a[h].title),g=a[h].tooltip||a[h].title,w=a[h].imgUrl,t=mxUtils.htmlEntities(a[h].changedBy||""),m=mxUtils.htmlEntities(a[h].lastModifiedOn||"");w||(w=TEMPLATE_PATH+"/"+e.substring(0,e.length-4)+".png");e=c?50:15;null!=k&&k.length>e&&(k=k.substring(0,
-e)+"&hellip;");if(c){var x=document.createElement("tr"),w=document.createElement("td"),l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramListPreviewBtn";l.setAttribute("title",mxResources.get("preview"));w.appendChild(l);g=document.createElement("span");g.className="geTempDlgDiagramTitle";g.innerHTML=k;w.appendChild(g);x.appendChild(w);w=document.createElement("td");w.innerHTML=t;x.appendChild(w);w=document.createElement("td");w.innerHTML=m;x.appendChild(w);
-f.appendChild(x);null==G&&(d(),u(x,"geTempDlgDiagramsListGridActive",a[h]));(function(a,b){mxEvent.addListener(x,"click",function(){G!=b&&(d(),u(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(x,"dblclick",p);mxEvent.addListener(l,"click",function(){q(a)})})(a[h],x)}else{var n=document.createElement("div");n.className="geTempDlgDiagramTile";n.setAttribute("title",g);null==G&&(d(),u(n,"geTempDlgDiagramTileActive",a[h]));t=document.createElement("div");t.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";
-var C=document.createElement("img");C.style.display="none";(function(a,b){C.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};C.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(C,t);C.src=w;t.appendChild(C);n.appendChild(t);t=document.createElement("div");t.className="geTempDlgDiagramTileLbl";t.innerHTML=null!=k?k:"";n.appendChild(t);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn";
-l.setAttribute("title",mxResources.get("preview"));n.appendChild(l);(function(a,b){mxEvent.addListener(n,"click",function(){G!=b&&(d(),u(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(n,"dblclick",p);mxEvent.addListener(l,"click",function(){q(a)})})(a[h],n);P.appendChild(n)}}}function A(a,b){Q.innerHTML="";u();for(var c=!b&&5<a.length?5:a.length,d=0;d<c;d++){var f=a[d];f.isCategory=!0;var h=document.createElement("div"),k=mxResources.get(f.title);null==k&&(k=f.title.substring(0,1).toUpperCase()+
-f.title.substring(1));h.className="geTempDlgNewDiagramCatItem";h.setAttribute("title",k);k=mxUtils.htmlEntities(k);15<k.length&&(k=k.substring(0,15)+"&hellip;");null==G&&(L.innerHTML=mxResources.get("create"),v(),u(h,"geTempDlgNewDiagramCatItemActive",f));var e=document.createElement("div");e.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");g.src=NEW_DIAGRAM_CATS_PATH+"/"+f.img;e.appendChild(g);h.appendChild(e);e=document.createElement("div");e.className="geTempDlgNewDiagramCatItemLbl";
-e.innerHTML=k;h.appendChild(e);Q.appendChild(h);(function(a,b){mxEvent.addListener(h,"click",function(){G!=b&&(L.innerHTML=mxResources.get("create"),v(),u(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(h,"dblclick",p)})(f,h)}T.style.display=5>a.length?"none":""}function t(a){var b=C.querySelector(".geTemplatesList"),c;for(c in a){var d=document.createElement("div"),f=mxResources.get(c),h=a[c];null==f&&(f=c.substring(0,1).toUpperCase()+c.substring(1));d.className="geTemplateCatLink";
-d.setAttribute("title",f+" ("+h.length+")");f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");d.innerHTML=f+" ("+h.length+")";b.appendChild(d);(function(b,c,f){mxEvent.addListener(d,"click",function(){E!=f&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=f,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,z&&(F=!0),S.innerHTML=c,aa.style.display="none",y(a[b],!0))})})(c,f,d)}}function w(a){l&&
-(Z.scrollTop=0,P.innerHTML="",U.spin(P),F=!1,z=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),K=null,l(W,a?null:g))}function x(a){h();Z.scrollTop=0;P.innerHTML="";U.spin(P);F=!1;z=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(a)+'"';m(a,W,D?null:g);K=a}d=null!=d?d:TEMPLATE_PATH+"/index.xml";e=null!=e?e:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,z=!1,F=!1,E=null,G=null,I=null,B=!1,D=!0,H=!1,M=[],K,T=C.querySelector(".geTempDlgShowAllBtn"),
+TemplatesDialog.prototype.init=function(a,b,c,d,e,g,k,l,m,f){function h(){null!=E&&(E.style.fontWeight="normal",E.style.textDecoration="none",E=null)}function n(a,b,c,d,f,h,e){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(e?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+b).src="/images/"+c+"-sel.svg";C.querySelector("."+f).src="/images/"+
+h+".svg";return!0}function u(a){function b(a){Z.removeChild(d);C.removeChild(c);Z.scrollTop=h}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var d=document.createElement("div");d.className="geTempDlgDiagramPreviewBox";var f=document.createElement("img");f.src=a;d.appendChild(f);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn";
+a.setAttribute("title",mxResources.get("close"));d.appendChild(a);var h=Z.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(c,"click",b);Z.appendChild(d);Z.scrollTop=0;d.style.lineHeight=d.clientHeight+"px"}function p(a,b,c){if(null!=G){for(var d=G.className.split(" "),f=0;f<d.length;f++)if(-1<d[f].indexOf("Active")){d.splice(f,1);break}G.className=d.join(" ")}null!=a?(G=a,G.className+=" "+b,I=c,L.className="geTempDlgCreateBtn"):(I=G=null,L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
+function q(c){if(null!=I){var d=I;I=null;L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";d.isExternal?(1==c?f(d.url,d,"nameInput.value"):m(d.url,d,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+d.url,mxUtils.bind(this,function(c){200<=c.getStatus()&&299>=c.getStatus()&&(b(c.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function v(a){a=a?"":"none";for(var b=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<b.length;c++)b[c].style.display=
+a}function y(a,b,c){function d(){L.innerHTML=b?mxResources.get("create"):mxResources.get("copy");v(!b)}P.innerHTML="";p();M=a;var f=null;if(c){f=document.createElement("table");f.className="geTempDlgDiagramsListGrid";var h=document.createElement("tr"),e=document.createElement("th");e.style.width="50%";e.innerHTML=mxResources.get("diagram",null,"Diagram");h.appendChild(e);e=document.createElement("th");e.style.width="25%";e.innerHTML=mxResources.get("changedBy",null,"Changed By");h.appendChild(e);
+e=document.createElement("th");e.style.width="25%";e.innerHTML=mxResources.get("lastModifiedOn",null,"Last modified on");h.appendChild(e);f.appendChild(h);P.appendChild(f)}for(h=0;h<a.length;h++){a[h].isExternal=!b;var n=a[h].url,e=mxUtils.htmlEntities(a[h].title),g=a[h].tooltip||a[h].title,w=a[h].imgUrl,t=mxUtils.htmlEntities(a[h].changedBy||""),k=mxUtils.htmlEntities(a[h].lastModifiedOn||"");w||(w=TEMPLATE_PATH+"/"+n.substring(0,n.length-4)+".png");n=c?50:15;null!=e&&e.length>n&&(e=e.substring(0,
+n)+"&hellip;");if(c){var x=document.createElement("tr"),w=document.createElement("td"),l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramListPreviewBtn";l.setAttribute("title",mxResources.get("preview"));w.appendChild(l);g=document.createElement("span");g.className="geTempDlgDiagramTitle";g.innerHTML=e;w.appendChild(g);x.appendChild(w);w=document.createElement("td");w.innerHTML=t;x.appendChild(w);w=document.createElement("td");w.innerHTML=k;x.appendChild(w);
+f.appendChild(x);null==G&&(d(),p(x,"geTempDlgDiagramsListGridActive",a[h]));(function(a,b){mxEvent.addListener(x,"click",function(){G!=b&&(d(),p(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(x,"dblclick",q);mxEvent.addListener(l,"click",function(){u(a)})})(a[h],x)}else{var m=document.createElement("div");m.className="geTempDlgDiagramTile";m.setAttribute("title",g);null==G&&(d(),p(m,"geTempDlgDiagramTileActive",a[h]));t=document.createElement("div");t.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";
+var C=document.createElement("img");C.style.display="none";(function(a,b){C.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};C.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(C,t);C.src=w;t.appendChild(C);m.appendChild(t);t=document.createElement("div");t.className="geTempDlgDiagramTileLbl";t.innerHTML=null!=e?e:"";m.appendChild(t);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn";
+l.setAttribute("title",mxResources.get("preview"));m.appendChild(l);(function(a,b){mxEvent.addListener(m,"click",function(){G!=b&&(d(),p(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(m,"dblclick",q);mxEvent.addListener(l,"click",function(){u(a)})})(a[h],m);P.appendChild(m)}}}function B(a,b){Q.innerHTML="";p();for(var c=!b&&5<a.length?5:a.length,d=0;d<c;d++){var f=a[d];f.isCategory=!0;var h=document.createElement("div"),e=mxResources.get(f.title);null==e&&(e=f.title.substring(0,1).toUpperCase()+
+f.title.substring(1));h.className="geTempDlgNewDiagramCatItem";h.setAttribute("title",e);e=mxUtils.htmlEntities(e);15<e.length&&(e=e.substring(0,15)+"&hellip;");null==G&&(L.innerHTML=mxResources.get("create"),v(),p(h,"geTempDlgNewDiagramCatItemActive",f));var n=document.createElement("div");n.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");g.src=NEW_DIAGRAM_CATS_PATH+"/"+f.img;n.appendChild(g);h.appendChild(n);n=document.createElement("div");n.className="geTempDlgNewDiagramCatItemLbl";
+n.innerHTML=e;h.appendChild(n);Q.appendChild(h);(function(a,b){mxEvent.addListener(h,"click",function(){G!=b&&(L.innerHTML=mxResources.get("create"),v(),p(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(h,"dblclick",q)})(f,h)}T.style.display=5>a.length?"none":""}function t(a){var b=C.querySelector(".geTemplatesList"),c;for(c in a){var d=document.createElement("div"),f=mxResources.get(c),h=a[c];null==f&&(f=c.substring(0,1).toUpperCase()+c.substring(1));d.className="geTemplateCatLink";
+d.setAttribute("title",f+" ("+h.length+")");f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");d.innerHTML=f+" ("+h.length+")";b.appendChild(d);(function(b,c,f){mxEvent.addListener(d,"click",function(){E!=f&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=f,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,z&&(F=!0),S.innerHTML=c,aa.style.display="none",y(a[b],!0))})})(c,f,d)}}function w(a){k&&
+(Z.scrollTop=0,P.innerHTML="",U.spin(P),F=!1,z=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),K=null,k(W,a?null:g))}function x(a){h();Z.scrollTop=0;P.innerHTML="";U.spin(P);F=!1;z=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(a)+'"';l(a,W,D?null:g);K=a}d=null!=d?d:TEMPLATE_PATH+"/index.xml";e=null!=e?e:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,z=!1,F=!1,E=null,G=null,I=null,A=!1,D=!0,H=!1,M=[],K,T=C.querySelector(".geTempDlgShowAllBtn"),
 P=C.querySelector(".geTempDlgDiagramsTiles"),S=C.querySelector(".geTempDlgDiagramsListTitle"),aa=C.querySelector(".geTempDlgDiagramsListBtns"),Z=C.querySelector(".geTempDlgContent"),N=C.querySelector(".geTempDlgDiagramsList"),Y=C.querySelector(".geTempDlgNewDiagramCat"),Q=C.querySelector(".geTempDlgNewDiagramCatList"),L=C.querySelector(".geTempDlgCreateBtn"),U=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(C.querySelector(".geTempDlgNewDiagramlbl"),
-"click",function(){h();Y.style.display="";N.style.minHeight="calc(100% - 280px)";w(D)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){k(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(D=!0,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){k(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg",
-"all-diagrams",!0)&&(D=!1,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){k(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(H=!0,y(M,!1,H))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){k(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(H=!1,y(M,!1,H))});mxEvent.addListener(T,"click",function(){B?(Y.style.height="280px",
-Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),A(J)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),A(J,!0));B=!B});var R=!1,O=!1,V={},J=[],X=1;mxUtils.get(d,function(a){if(!R){R=!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"),imgUrl:a.getAttribute("imgUrl")})}}a=a.nextSibling}t(V)}});mxUtils.get(e,function(a){if(!O){O=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&J.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),title:a.getAttribute("title")}),a=a.nextSibling;A(J)}});var W=function(a,b){aa.style.display="";U.stop();z=!1;F?F=!1:b?P.innerHTML=b:
-0==a.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):y(a,!1,H)};w(D);var da=null;m&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=da&&clearTimeout(da);13==a.keyCode?x(b.value):da=setTimeout(function(){x(b.value)},500)});mxEvent.addListener(L,"click",p);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){p(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=
+"click",function(){h();Y.style.display="";N.style.minHeight="calc(100% - 280px)";w(D)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){n(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(D=!0,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){n(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg",
+"all-diagrams",!0)&&(D=!1,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){n(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(H=!0,y(M,!1,H))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){n(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(H=!1,y(M,!1,H))});mxEvent.addListener(T,"click",function(){A?(Y.style.height="280px",
+Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),B(J)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),B(J,!0));A=!A});var R=!1,O=!1,V={},J=[],X=1;mxUtils.get(d,function(a){if(!R){R=!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"),imgUrl:a.getAttribute("imgUrl")})}}a=a.nextSibling}t(V)}});mxUtils.get(e,function(a){if(!O){O=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&J.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),title:a.getAttribute("title")}),a=a.nextSibling;B(J)}});var W=function(a,b){aa.style.display="";U.stop();z=!1;F?F=!1:b?P.innerHTML=b:
+0==a.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):y(a,!1,H)};w(D);var da=null;l&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=da&&clearTimeout(da);13==a.keyCode?x(b.value):da=setTimeout(function(){x(b.value)},500)});mxEvent.addListener(L,"click",q);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){q(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=
 c&&c();a.hideDialog(!0)})};(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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":
@@ -7469,8 +7471,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none
 type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity",
 type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction",
 type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point",
-type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",
-type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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';
+type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",
+dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",
+dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(a,b){if(null!=a){Editor.config=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;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));
 if(null!=a.css){var c=document.createElement("style");c.setAttribute("type","text/css");c.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(c,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=
@@ -7490,8 +7493,8 @@ showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||
 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){null!=this.graph.container&&this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");
 if(null!=d&&0<d.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;d[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 b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
 function(a,c,d,f){void 0!==c?b.push(c.replace(/\\'/g,"'")):void 0!==d?b.push(d.replace(/\\"/g,'"')):void 0!==f&&b.push(f);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 g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
-mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)?c=b.getId():null!=a.currentPage&&(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var l=Format.prototype.init;Format.prototype.init=function(){l.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var m=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||
-"1"==urlParams.embed||this.editorUi.editor.chromeless?m.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var n=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=n.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=
+mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)?c=b.getId():null!=a.currentPage&&(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.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()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){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",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,
 60));a.appendChild(d)}return a};var f=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=f.apply(this,arguments);var b=this.editorUi,c=b.editor.graph;if(c.isEnabled()){var d=b.getCurrentFile();null!=d&&d.isAutosaveOptional()&&(d=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(d))}if(this.isMathOptionVisible()&&c.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(c.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop=
@@ -7517,44 +7520,44 @@ font:"#ffffff"},{fill:"#6d8764",stroke:"#6d8764",font:"#ffffff"},{fill:"#647687"
 gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},
 {fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,c){if(null!=b){var d=function(a){if(null!=a)if(c)for(var d=0;d<a.length;d++)b[a[d].name]=a[d];else for(var f in b){for(var h=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==b[f].type){h=!0;break}h||delete b[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=
 !0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(E){}}};var h=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));
-h.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},c=a.vertices,d=a.edges,f=0;f<c.length;f++)this.findCommonProperties(c[f],b,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],b,0==c.length&&0==f);0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var k=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,
+h.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},c=a.vertices,d=a.edges,f=0;f<c.length;f++)this.findCommonProperties(c[f],b,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],b,0==c.length&&0==f);0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var n=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,
 function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");
-b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return k.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function d(a,b,c,d){w.getModel().beginUpdate();try{var f=[],h=[];if(null!=c.index){for(var k=[],e=c.parentRow.nextSibling;e&&e.getAttribute("data-pName")==a;)k.push(e.getAttribute("data-pValue")),e=e.nextSibling;c.index<k.length?null!=d?k.splice(d,1):k[c.index]=b:k.push(b);null!=c.size&&k.length>
-c.size&&(k=k.slice(0,c.size));b=k.join(",");null!=c.countProperty&&(w.setCellStyles(c.countProperty,k.length,w.getSelectionCells()),f.push(c.countProperty),h.push(k.length))}w.setCellStyles(a,b,w.getSelectionCells());f.push(a);h.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var g=c.dependentPropsDefVal[a],t=c.dependentPropsVals[a];if(t.length>b)t=t.slice(0,b);else for(var l=t.length;l<b;l++)t.push(g);t=t.join(",");w.setCellStyles(c.dependentProps[a],t,w.getSelectionCells());
-f.push(c.dependentProps[a]);h.push(t)}q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",h,"cells",w.getSelectionCells()))}finally{w.getModel().endUpdate()}}function f(b,c,d){var f=mxUtils.getOffset(a,!0),h=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=h.x-f.x+"px";c.style.top=h.y-f.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(d?4:0)+"px";c.style.zIndex=5}function h(a,b,c){var f=document.createElement("div");f.style.width="32px";f.style.height=
-"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(h){this.editorUi.pickColor(b,function(b){f.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;d(a,b,c)});mxEvent.consume(h)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function k(a,b,c,f,h,k,e){null!=b&&(b=b.split(","),m.push({name:a,
-values:b,type:c,defVal:f,countProperty:h,parentRow:k,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(q,function(b){for(var g=k,q=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,q++;else break;var w={type:c,parentRow:k,index:q,isDeletable:!0,defVal:f,countProperty:h},q=t(a,"",w,0==q%2,e);d(a,f,w);g.parentNode.insertBefore(q,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
-function e(a,b,c,d,f,h,k){if(0<f){var e=Array(f);b=null!=b?b.split(","):[];for(var g=0;g<f;g++)e[g]=null!=b[g]?b[g]:null!=d?d:"";m.push({name:a,values:e,type:c,defVal:d,parentRow:h,flipBkg:k,size:f})}return document.createElement("div")}function g(a,b,c){var f=document.createElement("input");f.type="checkbox";f.checked="1"==b;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",c)});return f}function t(b,c,t,w,l){var m=t.dispName,u=t.type,v=document.createElement("tr");v.className="gePropRow"+
-(l?"Dark":"")+(w?"Alt":"")+" gePropNonHeaderRow";v.setAttribute("data-pName",b);v.setAttribute("data-pValue",c);w=!1;null!=t.index&&(v.setAttribute("data-index",t.index),m=(null!=m?m:"")+"["+t.index+"]",w=!0);var p=document.createElement("td");p.className="gePropRowCell";p.innerHTML=mxUtils.htmlEntities(mxResources.get(m,null,m));w&&(p.style.textAlign="right");v.appendChild(p);p=document.createElement("td");p.className="gePropRowCell";if("color"==u)p.appendChild(h(b,c,t));else if("bool"==u||"boolean"==
-u)p.appendChild(g(b,c,t));else if("enum"==u){var x=t.enumList;for(l=0;l<x.length;l++)if(m=x[l],m.val==c){p.innerHTML=mxUtils.htmlEntities(mxResources.get(m.dispName,null,m.dispName));break}mxEvent.addListener(p,"click",mxUtils.bind(q,function(){var h=document.createElement("select");f(p,h);for(var k=0;k<x.length;k++){var e=x[k],g=document.createElement("option");g.value=mxUtils.htmlEntities(e.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));h.appendChild(g)}h.value=
-c;a.appendChild(h);mxEvent.addListener(h,"change",function(){var a=mxUtils.htmlEntities(h.value);d(b,a,t)});h.focus();mxEvent.addListener(h,"blur",function(){a.removeChild(h)})}))}else"dynamicArr"==u?p.appendChild(k(b,c,t.subType,t.subDefVal,t.countProperty,v,l)):"staticArr"==u?p.appendChild(e(b,c,t.subType,t.subDefVal,t.size,v,l)):(p.innerHTML=c,mxEvent.addListener(p,"click",mxUtils.bind(q,function(){function h(){var a=k.value;null!=t.min&&a<t.min?a=t.min:null!=t.max&&a>t.max&&(a=t.max);a=mxUtils.htmlEntities(("int"==
-u?parseInt(a):a)+"");d(b,a,t)}var k=document.createElement("input");f(p,k,!0);k.value=c;k.className="gePropEditor";if("int"==u||"float"==u)k.type="number",k.step="int"==u?"1":"any",null!=t.min&&(k.min=parseFloat(t.min)),null!=t.max&&(k.max=parseFloat(t.max));a.appendChild(k);mxEvent.addListener(k,"change",h);mxEvent.addListener(k,"keypress",function(a){13==a.keyCode&&h()});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})})));t.isDeletable&&(l=mxUtils.button("-",mxUtils.bind(q,
-function(a){d(b,"",t,t.index);mxEvent.consume(a)})),l.style.height="16px",l.style.width="25px",l.style["float"]="right",l.className="geColorBtn",p.appendChild(l));v.appendChild(p);return v}var q=this,w=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var u=document.createElement("table");u.style.whiteSpace="nowrap";u.style.width="100%";var l=document.createElement("tr");l.className="gePropHeader";var v=document.createElement("th");v.className="gePropHeaderCell";var p=
-document.createElement("img");p.src=Sidebar.prototype.expandedImage;v.appendChild(p);mxUtils.write(v,mxResources.get("property",null,"Property"));l.style.cursor="pointer";var x=function(){var b=u.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){p.src=Sidebar.prototype.collapsedImage;c="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],h=f.nodeName.toUpperCase();"INPUT"!=h&&"SELECT"!=h||a.removeChild(f)}catch(ea){}}else p.src=Sidebar.prototype.expandedImage,
-c="";for(d=0;d<b.length;d++)b[d].style.display=c};mxEvent.addListener(l,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;x()});l.appendChild(v);v=document.createElement("th");v.className="gePropHeaderCell";v.innerHTML=mxResources.get("value",null,"Value");l.appendChild(v);u.appendChild(l);var n=!1,A=!1,y;for(y in b){var l=b[y],C=null!=c.style[y]?mxUtils.htmlEntities(c.style[y]+""):l.defVal;if("separator"==l.type)A=!A;else{if("staticArr"==l.type)l.size=parseInt(c.style[l.sizeProperty]||
-b[l.sizeProperty].defVal)||0;else if(null!=l.dependentProps){for(var U=l.dependentProps,R=[],O=[],v=0;v<U.length;v++){var V=c.style[U[v]];O.push(b[U[v]].subDefVal);R.push(null!=V?V.split(","):[])}l.dependentPropsDefVal=O;l.dependentPropsVals=R}u.appendChild(t(y,C,l,n,A));n=!n}}for(v=0;v<m.length;v++)for(l=m[v],b=l.parentRow,c=0;c<l.values.length;c++)y=t(l.name,l.values[c],{type:l.type,parentRow:l.parentRow,isDeletable:l.isDeletable,index:c,defVal:l.defVal,countProperty:l.countProperty,size:l.size},
-0==c%2,l.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(u);x();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var f=d.getModel().getStyle(c[b]),k=0;k<h.length;k++)f=mxUtils.removeStylename(f,h[k]);var e=d.getModel().isVertex(c[b])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,
-a.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,
-mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(c[b],f)}}finally{d.getModel().endUpdate()}});b.className="geStyleButton";b.style.width=
-"36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,
-mxConstants.STYLE_FILLCOLOR,"#ffffff"),b.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+k}f.appendChild(b)}f.innerHTML="";for(var c=0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(f),b(a[c])}function c(a){mxEvent.addListener(a,
-"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var h="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");
-null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var e=document.createElement("div");e.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(a.appendChild(k),a.appendChild(e));mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(k);c(e);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&
+b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return n.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function d(a,b,c,d){u.getModel().beginUpdate();try{var f=[],h=[];if(null!=c.index){for(var e=[],n=c.parentRow.nextSibling;n&&n.getAttribute("data-pName")==a;)e.push(n.getAttribute("data-pValue")),n=n.nextSibling;c.index<e.length?null!=d?e.splice(d,1):e[c.index]=b:e.push(b);null!=c.size&&e.length>
+c.size&&(e=e.slice(0,c.size));b=e.join(",");null!=c.countProperty&&(u.setCellStyles(c.countProperty,e.length,u.getSelectionCells()),f.push(c.countProperty),h.push(e.length))}u.setCellStyles(a,b,u.getSelectionCells());f.push(a);h.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var g=c.dependentPropsDefVal[a],t=c.dependentPropsVals[a];if(t.length>b)t=t.slice(0,b);else for(var w=t.length;w<b;w++)t.push(g);t=t.join(",");u.setCellStyles(c.dependentProps[a],t,u.getSelectionCells());
+f.push(c.dependentProps[a]);h.push(t)}p.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",h,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function f(b,c,d){var f=mxUtils.getOffset(a,!0),h=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=h.x-f.x+"px";c.style.top=h.y-f.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(d?4:0)+"px";c.style.zIndex=5}function h(a,b,c){var f=document.createElement("div");f.style.width="32px";f.style.height=
+"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(p,function(h){this.editorUi.pickColor(b,function(b){f.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;d(a,b,c)});mxEvent.consume(h)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function e(a,b,c,f,h,e,n){null!=b&&(b=b.split(","),w.push({name:a,
+values:b,type:c,defVal:f,countProperty:h,parentRow:e,isDeletable:!0,flipBkg:n}));btn=mxUtils.button("+",mxUtils.bind(p,function(b){for(var g=e,p=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,p++;else break;var u={type:c,parentRow:e,index:p,isDeletable:!0,defVal:f,countProperty:h},p=t(a,"",u,0==p%2,n);d(a,f,u);g.parentNode.insertBefore(p,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
+function n(a,b,c,d,f,h,e){if(0<f){var n=Array(f);b=null!=b?b.split(","):[];for(var g=0;g<f;g++)n[g]=null!=b[g]?b[g]:null!=d?d:"";w.push({name:a,values:n,type:c,defVal:d,parentRow:h,flipBkg:e,size:f})}return document.createElement("div")}function g(a,b,c){var f=document.createElement("input");f.type="checkbox";f.checked="1"==b;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",c)});return f}function t(b,c,t,u,w){var k=t.dispName,l=t.type,q=document.createElement("tr");q.className="gePropRow"+
+(w?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";q.setAttribute("data-pName",b);q.setAttribute("data-pValue",c);u=!1;null!=t.index&&(q.setAttribute("data-index",t.index),k=(null!=k?k:"")+"["+t.index+"]",u=!0);var v=document.createElement("td");v.className="gePropRowCell";v.innerHTML=mxUtils.htmlEntities(mxResources.get(k,null,k));u&&(v.style.textAlign="right");q.appendChild(v);v=document.createElement("td");v.className="gePropRowCell";if("color"==l)v.appendChild(h(b,c,t));else if("bool"==l||"boolean"==
+l)v.appendChild(g(b,c,t));else if("enum"==l){var m=t.enumList;for(w=0;w<m.length;w++)if(k=m[w],k.val==c){v.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));break}mxEvent.addListener(v,"click",mxUtils.bind(p,function(){var h=document.createElement("select");f(v,h);for(var e=0;e<m.length;e++){var n=m[e],g=document.createElement("option");g.value=mxUtils.htmlEntities(n.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(n.dispName,null,n.dispName));h.appendChild(g)}h.value=
+c;a.appendChild(h);mxEvent.addListener(h,"change",function(){var a=mxUtils.htmlEntities(h.value);d(b,a,t)});h.focus();mxEvent.addListener(h,"blur",function(){a.removeChild(h)})}))}else"dynamicArr"==l?v.appendChild(e(b,c,t.subType,t.subDefVal,t.countProperty,q,w)):"staticArr"==l?v.appendChild(n(b,c,t.subType,t.subDefVal,t.size,q,w)):(v.innerHTML=c,mxEvent.addListener(v,"click",mxUtils.bind(p,function(){function h(){var a=e.value,a=0==a.length&&"string"!=l?0:a;t.allowAuto&&("auto"==a.trim().toLowerCase()?
+(a="auto",l="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=t.min&&a<t.min?a=t.min:null!=t.max&&a>t.max&&(a=t.max);a=mxUtils.htmlEntities(("int"==l?parseInt(a):a)+"");d(b,a,t)}var e=document.createElement("input");f(v,e,!0);e.value=c;e.className="gePropEditor";"int"!=l&&"float"!=l||t.allowAuto||(e.type="number",e.step="int"==l?"1":"any",null!=t.min&&(e.min=parseFloat(t.min)),null!=t.max&&(e.max=parseFloat(t.max)));a.appendChild(e);mxEvent.addListener(e,"change",h);mxEvent.addListener(e,"keypress",
+function(a){13==a.keyCode&&h()});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})})));t.isDeletable&&(w=mxUtils.button("-",mxUtils.bind(p,function(a){d(b,"",t,t.index);mxEvent.consume(a)})),w.style.height="16px",w.style.width="25px",w.style["float"]="right",w.className="geColorBtn",v.appendChild(w));q.appendChild(v);return q}var p=this,u=this.editorUi.editor.graph,w=[];a.style.position="relative";a.style.padding="0";var k=document.createElement("table");k.style.whiteSpace="nowrap";
+k.style.width="100%";var l=document.createElement("tr");l.className="gePropHeader";var q=document.createElement("th");q.className="gePropHeaderCell";var v=document.createElement("img");v.src=Sidebar.prototype.expandedImage;q.appendChild(v);mxUtils.write(q,mxResources.get("property",null,"Property"));l.style.cursor="pointer";var m=function(){var b=k.querySelectorAll(".gePropNonHeaderRow"),c;if(p.editorUi.propertiesCollapsed){v.src=Sidebar.prototype.collapsedImage;c="none";for(var d=a.childNodes.length-
+1;0<=d;d--)try{var f=a.childNodes[d],h=f.nodeName.toUpperCase();"INPUT"!=h&&"SELECT"!=h||a.removeChild(f)}catch(ea){}}else v.src=Sidebar.prototype.expandedImage,c="";for(d=0;d<b.length;d++)b[d].style.display=c};mxEvent.addListener(l,"click",function(){p.editorUi.propertiesCollapsed=!p.editorUi.propertiesCollapsed;m()});l.appendChild(q);q=document.createElement("th");q.className="gePropHeaderCell";q.innerHTML=mxResources.get("value",null,"Value");l.appendChild(q);k.appendChild(l);var x=!1,B=!1,y;for(y in b){var l=
+b[y],C=null!=c.style[y]?mxUtils.htmlEntities(c.style[y]+""):l.defVal;if("separator"==l.type)B=!B;else{if("staticArr"==l.type)l.size=parseInt(c.style[l.sizeProperty]||b[l.sizeProperty].defVal)||0;else if(null!=l.dependentProps){for(var U=l.dependentProps,R=[],O=[],q=0;q<U.length;q++){var V=c.style[U[q]];O.push(b[U[q]].subDefVal);R.push(null!=V?V.split(","):[])}l.dependentPropsDefVal=O;l.dependentPropsVals=R}k.appendChild(t(y,C,l,x,B));x=!x}}for(q=0;q<w.length;q++)for(l=w[q],b=l.parentRow,c=0;c<l.values.length;c++)y=
+t(l.name,l.values[c],{type:l.type,parentRow:l.parentRow,isDeletable:l.isDeletable,index:c,defVal:l.defVal,countProperty:l.countProperty,size:l.size},0==c%2,l.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(k);m();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var f=d.getModel().getStyle(c[b]),e=0;e<h.length;e++)f=mxUtils.removeStylename(f,
+h[e]);var n=d.getModel().isVertex(c[b])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,
+a.font||mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,
+null))));d.getModel().setStyle(c[b],f)}}finally{d.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?
+b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),b.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+
+e}f.appendChild(b)}f.innerHTML="";for(var c=0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(f),b(a[c])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);
+var h="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var e=document.createElement("div");e.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
+mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var n=document.createElement("div");n.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(a.appendChild(e),a.appendChild(n));mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(e);c(n);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&
 (c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,
 function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":
 (c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));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 q=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(a)}q.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;
+"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var u=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(a)}u.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;
 this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,
-b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var u=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return u.apply(this,arguments)&&!mxClient.IS_SF};var p=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=p.apply(this,arguments);if(null==
+b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var p=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return p.apply(this,arguments)&&!mxClient.IS_SF};var q=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=q.apply(this,arguments);if(null==
 b){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}null!=this.globalUrlVars&&(b=this.globalUrlVars[a])}return b};var v=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){v.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
 null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
 this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var y=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){y.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var b=0;b<a.actions.length;b++)if(null!=a.actions[b].open)if(this.isCustomLink(a.actions[b].open)){if(!this.customLinkClicked(a.actions[b].open))return}else this.openLink(a.actions[b].open);
 this.model.beginUpdate();try{for(b=0;b<a.actions.length;b++)this.handleLinkAction(a.actions[b])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(a){var b=[];null!=a.select&&this.isEnabled()&&(b=this.getCellsForAction(a.select),this.setSelectionCells(b));null!=a.highlight&&(b=this.getCellsForAction(a.highlight),this.highlightCells(b,a.highlight.color,a.highlight.duration,a.highlight.opacity));null!=a.toggle&&this.toggleCells(this.getCellsForAction(a.toggle));null!=a.show&&
 this.setCellsVisible(this.getCellsForAction(a.show),!0);null!=a.hide&&this.setCellsVisible(this.getCellsForAction(a.hide),!1);null!=a.scroll&&(b=this.getCellsForAction(a.scroll));0<b.length&&this.scrollCellToVisible(b[0])};Graph.prototype.getCellsForAction=function(a){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags))};Graph.prototype.getCellsById=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++)if("*"==a[c])var d=this.getDefaultParent(),b=b.concat(this.model.filterDescendants(function(a){return a!=
-d},d));else{var f=this.model.getCell(a[c]);null!=f&&b.push(f)}return b};Graph.prototype.getCellsForTags=function(a,b,c){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());c=null!=c?c:"tags";for(var f=0;f<b.length;f++)if(this.model.isVertex(b[f])||this.model.isEdge(b[f])){var h=null!=b[f].value&&"object"==typeof b[f].value?mxUtils.trim(b[f].value.getAttribute(c)||""):"",k=!0;if(0<h.length)for(var h=h.toLowerCase().split(" "),e=0;e<a.length&&k;e++)var g=mxUtils.trim(a[e]).toLowerCase(),
-k=k&&(0==g.length||0<=mxUtils.indexOf(h,g));else k=0==a.length;k&&d.push(b[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],!this.model.isVisible(a[b]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,b){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,c,d){for(var f=0;f<
+d},d));else{var f=this.model.getCell(a[c]);null!=f&&b.push(f)}return b};Graph.prototype.getCellsForTags=function(a,b,c){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());c=null!=c?c:"tags";for(var f=0;f<b.length;f++)if(this.model.isVertex(b[f])||this.model.isEdge(b[f])){var h=null!=b[f].value&&"object"==typeof b[f].value?mxUtils.trim(b[f].value.getAttribute(c)||""):"",e=!0;if(0<h.length)for(var h=h.toLowerCase().split(" "),n=0;n<a.length&&e;n++)var g=mxUtils.trim(a[n]).toLowerCase(),
+e=e&&(0==g.length||0<=mxUtils.indexOf(h,g));else e=0==a.length;e&&d.push(b[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],!this.model.isVisible(a[b]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,b){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,c,d){for(var f=0;f<
 a.length;f++)this.highlightCell(a[f],b,c,d)};Graph.prototype.highlightCell=function(a,b,c,d){b=null!=b?b:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),h=new mxCellHighlight(this,b,f,!1);null!=d&&(h.opacity=d);h.highlight(a);window.setTimeout(function(){null!=h.shape&&(mxUtils.setPrefixedStyle(h.shape.node.style,"transition","all 1200ms ease-in-out"),h.shape.node.style.opacity=0);window.setTimeout(function(){h.destroy()},
 1200)},c)}};Graph.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");h.setAttribute("in","SourceAlpha");h.setAttribute("stdDeviation",this.svgShadowBlur);h.setAttribute("result","blur");f.appendChild(h);h=null!=d.createElementNS?
 d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");h.setAttribute("in","blur");h.setAttribute("dx",this.svgShadowSize);h.setAttribute("dy",this.svgShadowSize);h.setAttribute("result","offsetBlur");f.appendChild(h);h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");h.setAttribute("flood-color",this.svgShadowColor);h.setAttribute("flood-opacity",this.svgShadowOpacity);h.setAttribute("result","offsetColor");f.appendChild(h);
@@ -7568,98 +7571,99 @@ mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mx
 [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.gcp2=[SHAPES_PATH+"/mxGCP2.js",
 STENCIL_PATH+"/gcp2.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.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.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 A=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,f,h,k,e,g,t){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return A.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){u.value=Math.max(1,
-Math.min(e,Math.max(parseInt(u.value),parseInt(m.value))));m.value=Math.max(1,Math.min(e,Math.min(parseInt(u.value),parseInt(m.value))))}function d(b){function c(b,c,f){var h=b.getGraphBounds(),k=0,e=0,g=da.get(),t=1/b.pageScale,q=n.checked;if(q)var t=parseInt(X.value),l=parseInt(W.value),t=Math.min(g.height*l/(h.height/b.view.scale),g.width*t/(h.width/b.view.scale));else t=parseInt(w.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,w.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*
-d);g.height=Math.ceil(g.height*d);t*=d;!q&&b.pageVisible?(h=b.getPageLayout(),k-=h.x*g.width,e-=h.y*g.height):q=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,g,0,k,e,q);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var m=c.writeHead;c.writeHead=function(b){m.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 u=c.renderPage;c.renderPage=
-function(a,b,c,d,f,h){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var e=u.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:e.className="geDisableMathJax";return e}}c.open(null,null,f,!0)}else{g=b.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";c.backgroundColor=g;c.autoOrigin=q;c.appendGraph(b,t,k,e,f,!0)}return c}var d=parseInt(ba.value)/100;isNaN(d)&&(d=
-1,ba.value="100 %");var d=.75*d,h=m.value,k=u.value,e=!q.checked,t=null;e&&(e=h==g&&k==g);if(!e&&null!=a.pages&&a.pages.length){var l=0,e=a.pages.length-1;q.checked||(l=parseInt(h)-1,e=parseInt(k)-1);for(var v=l;v<=e;v++){var p=a.pages[v],h=p==a.currentPage?f:null;if(null==h){var h=a.createTemporaryGraph(f.getStylesheet()),k=!0,l=!1,x=null,A=null;null==p.viewState&&null==p.mapping&&null==p.root&&a.updatePageRoot(p);null!=p.viewState?(k=p.viewState.pageVisible,l=p.viewState.mathEnabled,x=p.viewState.background,
-A=p.viewState.backgroundImage):null!=p.mapping&&null!=p.mapping.diagramMap&&(l="0"!=p.mapping.diagramMap.get("mathEnabled"),x=p.mapping.diagramMap.get("background"),A=p.mapping.diagramMap.get("backgroundImage"),A=null!=A&&0<A.length?JSON.parse(A):null);h.background=x;h.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;h.pageVisible=k;h.mathEnabled=l;var y=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a?p.getName():"pagenumber"==a?v+1:y.apply(this,arguments)};document.body.appendChild(h.container);
-a.updatePageRoot(p);h.model.setRoot(p.root)}t=c(h,t,v!=e);h!=f&&h.container.parentNode.removeChild(h.container)}}else t=c(f);t.mathEnabled&&(e=t.wnd.document,e.writeln('<script type="text/x-mathjax-config">'),e.writeln("MathJax.Hub.Config({"),e.writeln("showMathMenu: false,"),e.writeln('messageStyle: "none",'),e.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),e.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),e.writeln('"HTML-CSS": {'),
-e.writeln("imageFont: null"),e.writeln("},"),e.writeln("TeX: {"),e.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),e.writeln("},"),e.writeln("tex2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("},"),e.writeln("asciimath2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("}"),e.writeln("});"),b&&(e.writeln("MathJax.Hub.Queue(function () {"),e.writeln("window.print();"),e.writeln("});")),e.writeln("\x3c/script>"),e.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>'));
-t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)}var f=a.editor.graph,h=document.createElement("div"),k=document.createElement("h3");k.style.width="100%";k.style.textAlign="center";k.style.marginTop="0px";mxUtils.write(k,b||mxResources.get("print"));h.appendChild(k);var e=1,g=1,t=document.createElement("div");t.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");t.appendChild(q);k=document.createElement("span");mxUtils.write(k,mxResources.get("printAllPages"));t.appendChild(k);mxUtils.br(t);var l=q.cloneNode(!0);q.setAttribute("checked","checked");l.setAttribute("value","range");t.appendChild(l);k=document.createElement("span");mxUtils.write(k,mxResources.get("pages")+":");t.appendChild(k);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;";
-m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";t.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("to"));t.appendChild(k);var u=m.cloneNode(!0);t.appendChild(u);mxEvent.addListener(m,"focus",function(){l.checked=!0});mxEvent.addListener(u,"focus",function(){l.checked=!0});mxEvent.addListener(m,"change",c);mxEvent.addListener(u,"change",c);if(null!=a.pages&&(e=a.pages.length,null!=a.currentPage))for(k=0;k<a.pages.length;k++)if(a.currentPage==
-a.pages[k]){g=k+1;m.value=g;u.value=g;break}m.setAttribute("max",e);u.setAttribute("max",e);1<e&&h.appendChild(t);var v=document.createElement("div");v.style.marginBottom="10px";var p=document.createElement("input");p.style.marginRight="8px";p.setAttribute("value","adjust");p.setAttribute("type","radio");p.setAttribute("name","printZoom");v.appendChild(p);k=document.createElement("span");mxUtils.write(k,mxResources.get("adjustTo"));v.appendChild(k);var w=document.createElement("input");w.style.cssText=
-"margin:0 8px 0 8px;";w.setAttribute("value","100 %");w.style.width="50px";v.appendChild(w);mxEvent.addListener(w,"focus",function(){p.checked=!0});h.appendChild(v);var t=t.cloneNode(!1),n=p.cloneNode(!0);n.setAttribute("value","fit");p.setAttribute("checked","checked");k=document.createElement("div");k.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";k.appendChild(n);t.appendChild(k);v=document.createElement("table");v.style.display="inline-block";var x=document.createElement("tbody"),
-A=document.createElement("tr"),y=A.cloneNode(!0),L=document.createElement("td"),U=L.cloneNode(!0),R=L.cloneNode(!0),O=L.cloneNode(!0),V=L.cloneNode(!0),J=L.cloneNode(!0);L.style.textAlign="right";O.style.textAlign="right";mxUtils.write(L,mxResources.get("fitTo"));var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","1");X.setAttribute("min","1");X.setAttribute("type","number");X.style.width="40px";U.appendChild(X);k=document.createElement("span");mxUtils.write(k,
-mxResources.get("fitToSheetsAcross"));R.appendChild(k);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){n.checked=!0});mxEvent.addListener(W,"focus",function(){n.checked=!0});k=document.createElement("span");mxUtils.write(k,mxResources.get("fitToSheetsDown"));J.appendChild(k);A.appendChild(L);A.appendChild(U);A.appendChild(R);y.appendChild(O);y.appendChild(V);y.appendChild(J);x.appendChild(A);x.appendChild(y);v.appendChild(x);
-t.appendChild(v);h.appendChild(t);t=document.createElement("div");k=document.createElement("div");k.style.fontWeight="bold";k.style.marginBottom="12px";mxUtils.write(k,mxResources.get("paperSize"));t.appendChild(k);k=document.createElement("div");k.style.marginBottom="12px";var da=PageSetupDialog.addPageFormatPanel(k,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);t.appendChild(k);k=document.createElement("span");mxUtils.write(k,mxResources.get("pageScale"));t.appendChild(k);
-var ba=document.createElement("input");ba.style.cssText="margin:0 8px 0 8px;";ba.setAttribute("value","100 %");ba.style.width="60px";t.appendChild(ba);h.appendChild(t);k=document.createElement("div");k.style.cssText="text-align:right;margin:48px 0 0 0;";t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&k.appendChild(t);a.isOffline()||(v=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
-v.className="geBtn",k.appendChild(v));PrintDialog.previewEnabled&&(v=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),v.className="geBtn",k.appendChild(v));v=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});v.className="geBtn gePrimaryBtn";k.appendChild(v);a.editor.cancelFirst||k.appendChild(t);h.appendChild(k);this.container=h};var t=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
+[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 B=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,f,h,e,n,g,t){if(null!=c&&null==mxMarker.markers[c]){var p=this.getPackageForType(c);null!=p&&mxStencilRegistry.getStencil(p)}return B.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){l.value=Math.max(1,
+Math.min(n,Math.max(parseInt(l.value),parseInt(k.value))));k.value=Math.max(1,Math.min(n,Math.min(parseInt(l.value),parseInt(k.value))))}function d(b){function c(b,c,f){var h=b.getGraphBounds(),e=0,n=0,g=da.get(),t=1/b.pageScale,p=w.checked;if(p)var t=parseInt(X.value),u=parseInt(W.value),t=Math.min(g.height*u/(h.height/b.view.scale),g.width*t/(h.width/b.view.scale));else t=parseInt(m.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,m.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*
+d);g.height=Math.ceil(g.height*d);t*=d;!p&&b.pageVisible?(h=b.getPageLayout(),e-=h.x*g.width,n-=h.y*g.height):p=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,g,0,e,n,p);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var k=c.writeHead;c.writeHead=function(b){k.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,f,h){var e=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var n=l.apply(this,arguments);mxClient.NO_FO=e;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:n.className="geDisableMathJax";return n}}c.open(null,null,f,!0)}else{g=b.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";c.backgroundColor=g;c.autoOrigin=p;c.appendGraph(b,t,e,n,f,!0)}return c}var d=parseInt(ba.value)/100;isNaN(d)&&(d=
+1,ba.value="100 %");var d=.75*d,h=k.value,e=l.value,n=!p.checked,t=null;n&&(n=h==g&&e==g);if(!n&&null!=a.pages&&a.pages.length){var u=0,n=a.pages.length-1;p.checked||(u=parseInt(h)-1,n=parseInt(e)-1);for(var q=u;q<=n;q++){var v=a.pages[q],h=v==a.currentPage?f:null;if(null==h){var h=a.createTemporaryGraph(f.getStylesheet()),e=!0,u=!1,B=null,x=null;null==v.viewState&&null==v.mapping&&null==v.root&&a.updatePageRoot(v);null!=v.viewState?(e=v.viewState.pageVisible,u=v.viewState.mathEnabled,B=v.viewState.background,
+x=v.viewState.backgroundImage):null!=v.mapping&&null!=v.mapping.diagramMap&&(u="0"!=v.mapping.diagramMap.get("mathEnabled"),B=v.mapping.diagramMap.get("background"),x=v.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0<x.length?JSON.parse(x):null);h.background=B;h.backgroundImage=null!=x?new mxImage(x.src,x.width,x.height):null;h.pageVisible=e;h.mathEnabled=u;var y=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a?v.getName():"pagenumber"==a?q+1:y.apply(this,arguments)};document.body.appendChild(h.container);
+a.updatePageRoot(v);h.model.setRoot(v.root)}t=c(h,t,q!=n);h!=f&&h.container.parentNode.removeChild(h.container)}}else t=c(f);t.mathEnabled&&(n=t.wnd.document,n.writeln('<script type="text/x-mathjax-config">'),n.writeln("MathJax.Hub.Config({"),n.writeln("showMathMenu: false,"),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('"HTML-CSS": {'),
+n.writeln("imageFont: null"),n.writeln("},"),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://math.draw.io/current/MathJax.js">\x3c/script>'));
+t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)}var f=a.editor.graph,h=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"));h.appendChild(e);var n=1,g=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-bottom:8px;";
+p.setAttribute("value","all");p.setAttribute("type","radio");p.setAttribute("name","pages-printdialog");t.appendChild(p);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));t.appendChild(e);mxUtils.br(t);var u=p.cloneNode(!0);p.setAttribute("checked","checked");u.setAttribute("value","range");t.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");t.appendChild(e);var k=document.createElement("input");k.style.cssText="margin:0 8px 0 8px;";
+k.setAttribute("value","1");k.setAttribute("type","number");k.setAttribute("min","1");k.style.width="50px";t.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));t.appendChild(e);var l=k.cloneNode(!0);t.appendChild(l);mxEvent.addListener(k,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(k,"change",c);mxEvent.addListener(l,"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]){g=e+1;k.value=g;l.value=g;break}k.setAttribute("max",n);l.setAttribute("max",n);1<n&&h.appendChild(t);var q=document.createElement("div");q.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");q.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));q.appendChild(e);var m=document.createElement("input");m.style.cssText=
+"margin:0 8px 0 8px;";m.setAttribute("value","100 %");m.style.width="50px";q.appendChild(m);mxEvent.addListener(m,"focus",function(){v.checked=!0});h.appendChild(q);var t=t.cloneNode(!1),w=v.cloneNode(!0);w.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(w);t.appendChild(e);q=document.createElement("table");q.style.display="inline-block";var B=document.createElement("tbody"),
+x=document.createElement("tr"),y=x.cloneNode(!0),L=document.createElement("td"),U=L.cloneNode(!0),R=L.cloneNode(!0),O=L.cloneNode(!0),V=L.cloneNode(!0),J=L.cloneNode(!0);L.style.textAlign="right";O.style.textAlign="right";mxUtils.write(L,mxResources.get("fitTo"));var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","1");X.setAttribute("min","1");X.setAttribute("type","number");X.style.width="40px";U.appendChild(X);e=document.createElement("span");mxUtils.write(e,
+mxResources.get("fitToSheetsAcross"));R.appendChild(e);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){w.checked=!0});mxEvent.addListener(W,"focus",function(){w.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));J.appendChild(e);x.appendChild(L);x.appendChild(U);x.appendChild(R);y.appendChild(O);y.appendChild(V);y.appendChild(J);B.appendChild(x);B.appendChild(y);q.appendChild(B);
+t.appendChild(q);h.appendChild(t);t=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));t.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var da=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);t.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));t.appendChild(e);
+var ba=document.createElement("input");ba.style.cssText="margin:0 8px 0 8px;";ba.setAttribute("value","100 %");ba.style.width="60px";t.appendChild(ba);h.appendChild(t);e=document.createElement("div");e.style.cssText="text-align:right;margin:48px 0 0 0;";t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);a.isOffline()||(q=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
+q.className="geBtn",e.appendChild(q));PrintDialog.previewEnabled&&(q=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),q.className="geBtn",e.appendChild(q));q=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});q.className="geBtn gePrimaryBtn";e.appendChild(q);a.editor.cancelFirst||e.appendChild(t);h.appendChild(e);this.container=h};var t=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)):(t.apply(this,arguments),null!=this.mathEnabled&&
 this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-var ErrorDialog=function(a,b,c,d,e,g,l,m,n,f,h){n=null!=n?n:!0;var k=document.createElement("div");k.style.textAlign="center";if(null!=b){var q=document.createElement("div");q.style.padding="0px";q.style.margin="0px";q.style.fontSize="18px";q.style.paddingBottom="16px";q.style.marginBottom="16px";q.style.borderBottom="1px solid #c0c0c0";q.style.color="gray";mxUtils.write(q,b);k.appendChild(q)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=c;k.appendChild(b);c=document.createElement("div");
-c.style.marginTop="16px";c.style.textAlign="center";null!=g&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();g()}),b.className="geBtn",c.appendChild(b),c.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=h&&h()}),f.className="geBtn",c.appendChild(f));var u=mxUtils.button(d,function(){n&&a.hideDialog();null!=e&&e()});u.className="geBtn";c.appendChild(u);null!=l&&(d=mxUtils.button(l,function(){n&&a.hideDialog();null!=m&&m()}),d.className="geBtn gePrimaryBtn",
-c.appendChild(d));this.init=function(){u.focus()};k.appendChild(c);this.container=k};
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="9.3.1";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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";
+var ErrorDialog=function(a,b,c,d,e,g,k,l,m,f,h){m=null!=m?m:!0;var n=document.createElement("div");n.style.textAlign="center";if(null!=b){var u=document.createElement("div");u.style.padding="0px";u.style.margin="0px";u.style.fontSize="18px";u.style.paddingBottom="16px";u.style.marginBottom="16px";u.style.borderBottom="1px solid #c0c0c0";u.style.color="gray";mxUtils.write(u,b);n.appendChild(u)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=c;n.appendChild(b);c=document.createElement("div");
+c.style.marginTop="16px";c.style.textAlign="center";null!=g&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();g()}),b.className="geBtn",c.appendChild(b),c.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=h&&h()}),f.className="geBtn",c.appendChild(f));var p=mxUtils.button(d,function(){m&&a.hideDialog();null!=e&&e()});p.className="geBtn";c.appendChild(p);null!=k&&(d=mxUtils.button(k,function(){m&&a.hideDialog();null!=l&&l()}),d.className="geBtn gePrimaryBtn",
+c.appendChild(d));this.init=function(){p.focus()};n.appendChild(c);this.container=n};
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="9.3.4";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(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&&6<a.length}catch(p){}};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(u){}try{b=document.createElement("canvas");b.width=b.height=1;var d=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==d.match("image/jpeg")}catch(u){}})();
+!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(p){}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(q){}};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(p){}try{b=document.createElement("canvas");b.width=b.height=1;var d=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==d.match("image/jpeg")}catch(p){}})();
 EditorUi.prototype.openLink=function(a,b,c){return this.editor.graph.openLink(a,b,c)};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);null!=c&&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,h){var k=!1;this.active||(f.call(this,c),this.active=!0,null!=h&&(k=document.createElement("div"),k.style.position="absolute",k.style.whiteSpace="nowrap",k.style.background="#4B4243",k.style.color="white",k.style.fontFamily="Helvetica, Arial",k.style.fontSize="9pt",k.style.padding="6px",k.style.paddingLeft="10px",k.style.paddingRight=
-"10px",k.style.zIndex=2E9,k.style.left=Math.max(0,a)+"px",k.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(k.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(k.style,"boxShadow","2px 2px 3px 0px #ddd"),k.innerHTML=h+"...",c.appendChild(k),d.status=k,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(k.style.left=Math.round(Math.max(0,a-k.offsetWidth/2))+"px",k.style.top=Math.round(Math.max(0,
-b+70-k.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,h)}));this.stop();return a}),k=!0);return k};var h=d.stop;d.stop=function(){h.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=h;h+=b;return a.substring(c,h)}function f(a){a=d(a,4);return a.charCodeAt(3)+
-(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var h=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 k=d(a,4);if(null!=b&&b(h-8,k,c))break;value=d(a,c);d(a,4);if("IEND"==k)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};
+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,h){var e=!1;this.active||(f.call(this,c),this.active=!0,null!=h&&(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=h+"...",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,h)}));this.stop();return a}),e=!0);return e};var h=d.stop;d.stop=function(){h.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=h;h+=b;return a.substring(c,h)}function f(a){a=d(a,4);return a.charCodeAt(3)+
+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var h=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(h-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(u){}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 f=b.lastIndexOf("&lt;/mxfile&gt;");f>d&&(c=b.substring(d,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var e=mxUtils.parseXml(b),g=this.editor.extractGraphModel(e.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!=
 g?mxUtils.getXml(g):""}catch(v){}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 f=d.length-1;0<=f;f--){var e=this.updatePageRoot(new DiagramPage(d[f]));null==e.getName()&&e.setName(mxResources.get("pageWithNumber",[f+1]));b.model.execute(new ChangePage(this,e,0==f?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(f=0;f<c.length;f++)b.model.execute(new ChangePage(this,c[f],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,g,l,m,n,t){b=null!=
-b?b:this.editor.graph;e=null!=e?e:!1;n=null!=n?n:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==a)return"";var k=a;if("mxfile"!=k.nodeName.toLowerCase()){var q=b.zapGremlins(mxUtils.getXml(a)),k=b.compress(q);if(b.decompress(k)!=q)return q;q=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(q,k);k=a.ownerDocument.createElement("mxfile");k.appendChild(q)}t?(k=k.cloneNode(!0),k.removeAttribute("userAgent"),k.removeAttribute("version"),
-k.removeAttribute("editor"),k.removeAttribute("type")):(k.setAttribute("userAgent",navigator.userAgent),k.setAttribute("version",EditorUi.VERSION),k.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&k.setAttribute("type",a));a=mxUtils.getXml(k);if(!g&&!e&&(l||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(k),b,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
-App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,m,n,h);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var h=this.pages[f].mapping;
-this.currentPage!=this.pages[f]&&null!=h&&h.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(h.graphModel),h.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),h.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,l,m,n){e=null!=e?e:!0;l=null!=l?l:this.getXmlFileData(e,null!=g?g:!1);n=null!=n?n:this.getCurrentFile();g=this.editor.graph;
-if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=n&&/(\.svg)$/i.test(n.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}a=this.createFileData(l,g,n,window.location.href,a,b,c,d,e,m);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a};
-EditorUi.prototype.getHtml=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),k=b.view.scale;g=Math.floor(f.x/k-b.view.translate.x);k=Math.floor(f.y/k-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(h="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",k)}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!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':
+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(f=0;f<c.length;f++)b.model.execute(new ChangePage(this,c[f],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,g,k,l,m,t){b=null!=
+b?b:this.editor.graph;e=null!=e?e:!1;m=null!=m?m:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==a)return"";var n=a;if("mxfile"!=n.nodeName.toLowerCase()){var p=b.zapGremlins(mxUtils.getXml(a)),n=b.compress(p);if(b.decompress(n)!=p)return p;p=a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,n);n=a.ownerDocument.createElement("mxfile");n.appendChild(p)}t?(n=n.cloneNode(!0),n.removeAttribute("userAgent"),
+n.removeAttribute("version"),n.removeAttribute("editor"),n.removeAttribute("type")):(n.setAttribute("userAgent",navigator.userAgent),n.setAttribute("version",EditorUi.VERSION),n.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&n.setAttribute("type",a));a=mxUtils.getXml(n);if(!g&&!e&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(n),b,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=
+App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,l,m,h);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var f=
+this.pages[d].mapping;if(this.currentPage!=this.pages[d]&&null!=f&&f.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel);f.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[d].node,this.editor.graph.compressNode(e));f.needsUpdate=!1}c.appendChild(this.pages[d].node)}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,k,l,m){e=null!=e?e:!0;k=null!=k?k:this.getXmlFileData(e,null!=g?g:!1);m=null!=m?m:this.getCurrentFile();g=this.editor.graph;if(null!=this.pages&&
+this.currentPage!=this.pages[0]&&(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}a=this.createFileData(k,g,m,window.location.href,a,b,c,d,e,l);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a};EditorUi.prototype.getHtml=
+function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),n=b.view.scale;g=Math.floor(f.x/n-b.view.translate.x);n=Math.floor(f.y/n-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(h="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",n)}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!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':
 ">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+"</head>\n<body"+(null==e&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==e?'<script type="text/javascript" src="'+h+'">\x3c/script>':
 '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" 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,d,e){null!=e&&(e=e.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==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\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==e?'<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="'+e+'" 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 b=null!=a&&0<a.length?
 mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=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(a){var b=this.getCurrentFile(),b=null!=b&&null!=
-b.getTitle()?b.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,e,g,l){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),
-h=f+"."+a;if("xml"==a){var k='<?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(h,a,k,"text/xml")}else if("html"==a)k=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,a,k,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?h=f+".png":"jpeg"==a&&(h=f+".jpg"),this.saveRequest(h,a,mxUtils.bind(this,function(b,c){try{var f=
-this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(b,a,d,c,l);this.editor.graph.pageVisible=f;return h}catch(B){this.handleError(B)}}));else{var m=null,q=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(h,"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 v=this.editor.graph.background;if(l||v==
-mxConstants.NONE)v=null;var u=this.editor.graph.getSvg(v,null,null,null,null,d);c&&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 h=f+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();q(a)}),d)}}catch(F){this.handleError(F)}};
-EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==b&&(f="1",b="png",null!=this.pages&&null!=this.currentPage))for(var k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){h="&from="+k;break}k=this.editor.graph.background;"png"==b&&e&&(k=mxConstants.NONE);
-return new mxXmlRequest(EXPORT_URL,"format="+b+h+"&bg="+(null!=k?k:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
-null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var h=null!=a.interval?parseInt(a.interval):6E4,k=null,e=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
-mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(k);k=window.setTimeout(e,h)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();e()}));g();e()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var h=a.url;/^https?:\/\//.test(h)&&
-!this.isCorsEnabledForUrl(h)&&(h=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(h,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){editorUi.alert(a.tooltip)});return b}var c=null;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null,
-null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var e=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var g=f.getCell(a.getAttribute("id"));if(null!=g){try{var l=a.getAttribute("value");if(null!=l){var m=mxUtils.parseXml(l).documentElement;if(null!=m)if("1"==m.getAttribute("replace-value"))f.setValue(g,m);else for(var t=m.attributes,n=0;n<t.length;n++)d.setAttributeForCell(g,t[n].nodeName,0<t[n].nodeValue.length?t[n].nodeValue:null)}}catch(B){null!=
-window.console&&console.log("Error in value for "+g.id+": "+B)}try{var x=a.getAttribute("style");null!=x&&d.model.setStyle(g,x)}catch(B){null!=window.console&&console.log("Error in style for "+g.id+": "+B)}try{var C=a.getAttribute("icon");if(null!=C){var z=0<C.length?JSON.parse(C):null;null!=z&&z.append||d.removeCellOverlays(g);null!=z&&d.addCellOverlay(g,b(z))}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),
-E=d.getCellGeometry(g);if(null!=E){E=E.clone();for(key in F){var G=parseFloat(F[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(F[key])}d.model.setGeometry(g,E)}}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&
-(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(e=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=e&&this.chromelessResize&&this.chromelessResize(!0,e)}return c};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();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML=
-"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();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.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!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(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){null!=window.console&&console.log("error in fileLoaded:",a,u);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!=u&&null!=u.message?":err:"+encodeURIComponent(u.message):"")+(null!=u&&null!=u.stack?"&stack="+encodeURIComponent(u.stack):"")}catch(p){}this.handleError(u,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!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b};
-EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(k){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,l){};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 b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);
-return mxUtils.getXml(b)};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 b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;
-if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,c,b.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,h=mxUtils.bind(this,function(b,c){0==b.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"))),c.appendChild(f)):this.addLibraryEntries(b,c)});if(null!=this.sidebar&&null!=b)for(var e=0;e<b.length;e++)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[e]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){h(b,a)}));this.repositionLibrary(d);
-var g=k.parentNode.previousSibling;c=g.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");g.style.position="relative";var l=document.createElement("img");l.setAttribute("src",Dialog.prototype.closeImage);l.setAttribute("title",
-mxResources.get("close"));l.setAttribute("valign","absmiddle");l.setAttribute("border","0");l.style.margin="0 3px";var m=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(l),mxEvent.addListener(l,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=m?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var n=
-this.editor.graph,z=null,F=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=z&&null!=z.parentNode&&z.parentNode.removeChild(z),z=l.cloneNode(!1),z.setAttribute("src",Editor.spinImage),z.setAttribute("title",mxResources.get("saving")),z.style.cursor="default",z.style.marginRight="2px",z.style.marginTop="-2px",t.insertBefore(z,t.firstChild),g.style.paddingRight=18*t.childNodes.length+
-"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=z&&null!=z.parentNode&&(z.parentNode.removeChild(z),g.style.paddingRight=18*t.childNodes.length+"px")})):null==m&&(m=l.cloneNode(!1),m.setAttribute("src",IMAGE_PATH+"/download.png"),m.setAttribute("title",mxResources.get("save")),t.insertBefore(m,t.firstChild),mxEvent.addListener(m,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==m||a.isModified()||
-(g.style.paddingRight=18*t.childNodes.length+"px",m.parentNode.removeChild(m),m=null)});mxEvent.consume(c)})),g.style.paddingRight=18*t.childNodes.length+"px")}),G=mxUtils.bind(this,function(a,c,d,h){a=n.cloneCells(mxUtils.sortCells(n.model.getTopmostCells(a)));for(var e=0;e<a.length;e++){var g=n.getCellGeometry(a[e]);null!=g&&g.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,h||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
-w:c.width,h:c.height};null!=h&&(a.title=h);b.push(a);E(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(n.isSelectionEmpty())n.getRubberband().isActive()?(n.getRubberband().execute(a),n.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=n.getSelectionCells(),c=n.view.getBounds(b),d=n.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=n.view.translate.x;
-c.y-=n.view.translate.y;G(b,c)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler.shape&&(n.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",n.panningManager.stop(),n.autoScroll=!1,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!1),
-null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,n.panningManager.stop(),n.graphHandler.reset(),n.isMouseDown=!1,n.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){n.isMouseDown&&
-null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",n.autoScroll=!0,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!0),null!=n.graphHandler.hint&&(n.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(c,d,e,g,t,l,m,q,n){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,l),c)],c[0].vertex=!0,G(c,new mxRectangle(0,0,t,l),a,mxEvent.isAltDown(a)?null:m.substring(0,m.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var v=!1,u=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var e=mxUtils.parseXml(c);if("mxlibrary"==e.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(e.documentElement));h(g,k);b=b.concat(g);E(a);
-this.spinner.stop();v=!0}catch(X){}else if("mxfile"==e.documentElement.nodeName)try{for(var t=e.documentElement.getElementsByTagName("diagram"),e=0;e<t.length;e++){var g=mxUtils.getTextContent(t[e]),l=this.stringToCells(this.editor.graph.decompress(g)),m=this.editor.graph.getBoundingBoxFromGeometry(l);G(l,new mxRectangle(0,0,m.width,m.height),a)}v=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}v||(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!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?this.importVisio(n,function(a){u(a,"text/xml")},null,m):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,m)&&null!=n?this.parseFile(n,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(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",Editor.editImage);l.setAttribute("title",mxResources.get("edit"));t.insertBefore(l,t.firstChild);mxEvent.addListener(l,"click",F);mxEvent.addListener(k,
-"dblclick",function(a){mxEvent.getSource(a)==k&&F(a)});c=l.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
-mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}g.appendChild(t);g.style.paddingRight=18*t.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+
+b.getTitle()?b.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,e,g,k){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),
+h=f+"."+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(h,a,n,"text/xml")}else if("html"==a)n=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,a,n,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?h=f+".png":"jpeg"==a&&(h=f+".jpg"),this.saveRequest(h,a,mxUtils.bind(this,function(b,c){try{var f=
+this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var e=this.createDownloadRequest(b,a,d,c,k);this.editor.graph.pageVisible=f;return e}catch(A){this.handleError(A)}}));else{var l=null,p=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(l)}))});if("svg"==a){var u=this.editor.graph.background;if(k||u==
+mxConstants.NONE)u=null;var v=this.editor.graph.getSvg(u,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(v);this.convertImages(v,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();p('<?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 h=f+".svg",l=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();p(a)}),d)}}catch(F){this.handleError(F)}};
+EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==b&&(f="1",b="png",null!=this.pages&&null!=this.currentPage))for(var n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){h="&from="+n;break}n=this.editor.graph.background;"png"==b&&e&&(n=mxConstants.NONE);
+return new mxXmlRequest(EXPORT_URL,"format="+b+h+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,h=null,n=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(h);h=window.setTimeout(n,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();n()}));g();n()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&&
+!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){editorUi.alert(a.tooltip)});return b}var c=null;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null,
+null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var e=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var g=f.getCell(a.getAttribute("id"));if(null!=g){try{var k=a.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))f.setValue(g,l);else for(var t=l.attributes,m=0;m<t.length;m++)d.setAttributeForCell(g,t[m].nodeName,0<t[m].nodeValue.length?t[m].nodeValue:null)}}catch(A){null!=
+window.console&&console.log("Error in value for "+g.id+": "+A)}try{var x=a.getAttribute("style");null!=x&&d.model.setStyle(g,x)}catch(A){null!=window.console&&console.log("Error in style for "+g.id+": "+A)}try{var C=a.getAttribute("icon");if(null!=C){var z=0<C.length?JSON.parse(C):null;null!=z&&z.append||d.removeCellOverlays(g);null!=z&&d.addCellOverlay(g,b(z))}}catch(A){null!=window.console&&console.log("Error in icon for "+g.id+": "+A)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),
+E=d.getCellGeometry(g);if(null!=E){E=E.clone();for(key in F){var G=parseFloat(F[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(F[key])}d.model.setGeometry(g,E)}}}catch(A){null!=window.console&&console.log("Error in icon for "+g.id+": "+A)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&
+(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(e=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=e&&this.chromelessResize&&this.chromelessResize(!0,e)}return c};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,
+d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),h=e.getMonth()+1,g=e.getDate(),k=e.getHours(),t=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(f+"-"+h+"-"+g+"-"+k+"-"+t+"-"+e));return c=mxResources.get("copyOf",[c])+d};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();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();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.isChromelessView()||
+this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!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(p){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(p){}}catch(p){null!=window.console&&console.log("error in fileLoaded:",a,p);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!=p&&null!=p.message?":err:"+encodeURIComponent(p.message):
+"")+(null!=p&&null!=p.stack?"&stack="+encodeURIComponent(p.stack):"")}catch(q){}this.handleError(p,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!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var b=
+null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(n){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,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 b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};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 b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a=
+null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,c,b.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(b,c){0==b.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"))),c.appendChild(f)):this.addLibraryEntries(b,c)});if(null!=this.sidebar&&null!=b)for(var h=0;h<b.length;h++)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[h]);c=null!=c&&0<c.length?c:a.getTitle();var n=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var g=n.parentNode.previousSibling;c=g.getAttribute("title");null!=
+c&&0<c.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");g.style.position="relative";var k=document.createElement("img");k.setAttribute("src",Dialog.prototype.closeImage);k.setAttribute("title",mxResources.get("close"));k.setAttribute("valign","absmiddle");
+k.setAttribute("border","0");k.style.margin="0 3px";var l=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(k),mxEvent.addListener(k,"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,z=null,F=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
+n,b,a,a.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=z&&null!=z.parentNode&&z.parentNode.removeChild(z),z=k.cloneNode(!1),z.setAttribute("src",Editor.spinImage),z.setAttribute("title",mxResources.get("saving")),z.style.cursor="default",z.style.marginRight="2px",z.style.marginTop="-2px",t.insertBefore(z,t.firstChild),g.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=z&&null!=
+z.parentNode&&(z.parentNode.removeChild(z),g.style.paddingRight=18*t.childNodes.length+"px")})):null==l&&(l=k.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()||(g.style.paddingRight=18*t.childNodes.length+"px",l.parentNode.removeChild(l),
+l=null)});mxEvent.consume(c)})),g.style.paddingRight=18*t.childNodes.length+"px")}),G=mxUtils.bind(this,function(a,c,d,e){a=m.cloneCells(mxUtils.sortCells(m.model.getTopmostCells(a)));for(var h=0;h<a.length;h++){var g=m.getCellGeometry(a[h]);null!=g&&g.translate(-c.x,-c.y)}n.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!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=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;G(b,c)}mxEvent.consume(a)});
+n.style.border="3px solid transparent";mxEvent.addGestureListeners(n,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)",n.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&&(n.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),n.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),m.isMouseDown=!1,m.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility=
+"visible",n.style.border="3px solid transparent",n.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!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(n,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";n.style.cursor=
+"copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"drop",mxUtils.bind(this,function(a){n.style.border="3px solid transparent";n.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,d,h,g,t,k,l,m,u){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,k),c)],c[0].vertex=!0,G(c,new mxRectangle(0,0,t,k),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var p=!1,v=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var h=mxUtils.parseXml(c);if("mxlibrary"==h.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(h.documentElement));e(g,n);b=b.concat(g);E(a);this.spinner.stop();
+p=!0}catch(X){}else if("mxfile"==h.documentElement.nodeName)try{for(var t=h.documentElement.getElementsByTagName("diagram"),h=0;h<t.length;h++){var g=mxUtils.getTextContent(t[h]),k=this.stringToCells(this.editor.graph.decompress(g)),l=this.editor.graph.getBoundingBoxFromGeometry(k);G(k,new mxRectangle(0,0,l.width,l.height),a)}p=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&
+null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?this.importVisio(u,function(a){v(a,"text/xml")},null,l):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,l)&&null!=u?this.parseFile(u,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?v(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":
+"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(n.style.border="3px solid transparent",n.style.cursor="");a.stopPropagation();a.preventDefault()}));k=k.cloneNode(!1);k.setAttribute("src",Editor.editImage);k.setAttribute("title",mxResources.get("edit"));t.insertBefore(k,t.firstChild);mxEvent.addListener(k,"click",F);mxEvent.addListener(n,
+"dblclick",function(a){mxEvent.getSource(a)==n&&F(a)});c=k.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
+mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}g.appendChild(t);g.style.paddingRight=18*t.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+
 "image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(this.editor.graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};"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=
@@ -7670,142 +7674,142 @@ Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAM
 !0;this.editor.graph.model.execute(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);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"),h=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),h=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 null!=f.message?a=mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,c,h)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,g,l,m,n,t,w,x){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),d,e,g,l,x,m,n);this.showDialog(a.container,t||340,w||150,!0,!1);a.init()};EditorUi.prototype.alert=
+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 n=window.location.hash;null!=n&&"#G"==n.substring(0,2)&&(n=n.substring(2),a+=' <a href="https://drive.google.com/open?id='+n+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message):
+null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,c,h)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,g,k,l,m,t,w,x){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),d,e,g,k,x,l,m);this.showDialog(a.container,t||340,w||150,!0,!1);a.init()};EditorUi.prototype.alert=
 function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).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,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 f=document.createElement("a"),h=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),h=65==(k?parseInt(k[2],10):!1)?!1:h;if(h||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));h?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);
-try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.click(),f.parentNode.removeChild(f)}catch(A){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=
-b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),h=0;h<f;++h){for(var g=1024*h,l=Math.min(g+1024,d),t=Array(l-g),m=0;g<l;++m,++g)t[m]=c[g].charCodeAt(0);e[h]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,g,l){g=null!=g?g:!1;l=null!=l?l:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){try{if("_blank"==f)if(null==c||"image/"!=c.substring(0,6)||
+"380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),h=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),h=65==(g?parseInt(g[2],10):!1)?!1:h;if(h||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));h?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);
+try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.click(),f.parentNode.removeChild(f)}catch(B){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=
+b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),h=0;h<f;++h){for(var g=1024*h,k=Math.min(g+1024,d),t=Array(k-g),l=0;g<k;++l,++g)t[l]=c[g].charCodeAt(0);e[h]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,g,k){g=null!=g?g:!1;k=null!=k?k:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){try{if("_blank"==f)if(null==c||"image/"!=c.substring(0,6)||
 "image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var e=window.open("about:blank");null==e?mxUtils.popup(a,!0):(e.document.write(mxUtils.htmlEntities(a,!1)),e.document.close())}else this.openInNewWindow(a,c,d);else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(f,mxUtils.bind(this,function(e){try{this.exportFile(a,b,c,d,f,e)}catch(x){this.handleError(x)}}))}catch(w){this.handleError(w)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
-mxResources.get("download"),!1,g,l,null,1<e,4<e&&(!g||6>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))+
+mxResources.get("download"),!1,g,k,null,1<e,4<e&&(!g||6>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=
 "4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
 this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
 mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));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,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,e,g,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,f){if("_blank"==f||null!=a&&0<a.length){var e=c("_blank"==f?null:a,f==App.MODE_DEVICE||"download"==f||null==f||"_blank"==f?"0":"1");null!=e&&(f==
-App.MODE_DEVICE||"download"==f||"_blank"==f?e.simulate(document,"_blank"):this.pickFolder(f,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,f,c)}catch(C){this.handleError(C)}else this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=e.getStatus()&&299>=e.getStatus())try{this.exportFile(e.getText(),a,g,!0,f,c)}catch(C){this.handleError(C)}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,l,null,1<f,4<f?3:4,d,g,e);this.showDialog(a.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,e,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,
-b,c,d,e,g,l,m,n,t){if(this.spinner.spin(document.body,mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f="#ffffff");var h=this.editor.graph.getSvg(f,a,l,m,null,c,null,null,"blank"==t?"_blank":"self"==t?"_top":null);d&&this.editor.graph.addSvgShadow(h);var k=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,
-null,null,null,c,n));if(null!=this.editor.fontCss){var b=a.ownerDocument,b=null!=b.createElementNS?b.createElementNS(mxConstants.NS_SVG,"style"):b.createElement("style");b.setAttribute("type","text/css");mxUtils.setTextContent(b,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(b)}var d='<!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()||d.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",d,
-"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.convertMath(this.editor.graph,h,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(h,q,this.thumbImageCache)):q(h)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type",
+c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,e,g,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=a&&0<a.length){var f=c("_blank"==e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=f&&(e==
+App.MODE_DEVICE||"download"==e||"_blank"==e?f.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(C){this.handleError(C)}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,g,!0,e,c)}catch(C){this.handleError(C)}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,1<f,4<f?3:4,d,g,e);this.showDialog(a.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,e,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,
+b,c,d,e,g,k,l,m,t){if(this.spinner.spin(document.body,mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f="#ffffff");var h=this.editor.graph.getSvg(f,a,k,l,null,c,null,null,"blank"==t?"_blank":"self"==t?"_top":null);d&&this.editor.graph.addSvgShadow(h);var n=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,
+null,null,null,c,m));if(null!=this.editor.fontCss){var b=a.ownerDocument,b=null!=b.createElementNS?b.createElementNS(mxConstants.NS_SVG,"style"):b.createElement("style");b.setAttribute("type","text/css");mxUtils.setTextContent(b,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(b)}var d='<!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()||d.length<=MAX_REQUEST_SIZE?this.saveData(n,"svg",d,
+"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.convertMath(this.editor.graph,h,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(h,u,this.thumbImageCache)):u(h)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type",
 "checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled","disabled");g&&(a.appendChild(f),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),e||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=f.getAttribute("disabled")&&(f.checked=!f.checked,mxEvent.consume(a))})));return f};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft=
-"24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+
-"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));
-mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){h.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>'}
+"24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));f.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+
+"...");f.appendChild(d);a.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")}));
+mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===f.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){h.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}
 mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value",
 "self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",h=null,h=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();h.style.padding=mxClient.IS_FF?
-"4px 2px 4px 2px":"4px";h.style.marginLeft="4px";h.style.height="22px";h.style.width="22px";h.style.position="relative";h.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";h.className="geColorBtn";a.appendChild(h);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,g,l,m){var f=this.getCurrentFile(),h=[];d&&(h.push("lightbox=1"),"auto"!=a&&h.push("target="+a),null!=
-b&&b!=mxConstants.NONE&&h.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&h.push("edit="+encodeURIComponent(e)),g&&h.push("layers=1"),this.editor.graph.foldingEnabled&&h.push("nav=1"));c&&(a=this.getSelectedPageIndex(),0<a&&h.push("page="+a));a=!0;null!=l?c="#U"+encodeURIComponent(l):(f=this.getCurrentFile(),m||null==f||f.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="#"+f.getHash(),a=!1));a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&h.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<h.length?"?"+h.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,g,l,m,n,t,w){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d);
-n||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];l&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),f.resize=!0);m&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),f.toolbar=c.join(" "));null!=t&&0<t.length&&(f.edit=t);null!=a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(g?"max-width:100%;":
+"4px 2px 4px 2px":"4px";h.style.marginLeft="4px";h.style.height="22px";h.style.width="22px";h.style.position="relative";h.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";h.className="geColorBtn";a.appendChild(h);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,g,k,l){var f=this.getCurrentFile(),h=[];d&&(h.push("lightbox=1"),"auto"!=a&&h.push("target="+a),null!=
+b&&b!=mxConstants.NONE&&h.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&h.push("edit="+encodeURIComponent(e)),g&&h.push("layers=1"),this.editor.graph.foldingEnabled&&h.push("nav=1"));c&&(a=this.getSelectedPageIndex(),0<a&&h.push("page="+a));a=!0;null!=k?c="#U"+encodeURIComponent(k):(f=this.getCurrentFile(),l||null==f||f.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="#"+f.getHash(),a=!1));a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&h.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<h.length?"?"+h.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,g,k,l,m,t,w){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d);
+m||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];k&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),f.resize=!0);l&&c.push("layers");0<c.length&&(m&&c.push("lightbox"),f.toolbar=c.join(" "));null!=t&&0<t.length&&(f.edit=t);null!=a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(g?"max-width:100%;":
 "")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";w(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 f=document.createElement("div");
 f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(e);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");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);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 t=this.getCurrentFile();null==c&&null!=t&&t.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(t.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var l=this.addLinkSection(f),m=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");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="100%";f.appendChild(n);var q=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),I=this.addEditButton(f,G),B=I.getEditInput();B.style.marginBottom="16px";mxEvent.addListener(G,"change",function(){G.checked?B.removeAttribute("disabled"):
-B.setAttribute("disabled","disabled");B.checked&&G.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,m.checked,n.value,l.getTarget(),l.getColor(),q.checked,F.checked,E.checked,G.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace=
-"nowrap";var h=document.createElement("h3");mxUtils.write(h,a||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var k=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=k&&k.constructor==window.DriveFile&&!b){a=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",t=document.createElement("div");t.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"));t.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));l.style.marginTop="12px";l.className="geBtn";t.appendChild(l);f.appendChild(t);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"));
-t.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,n=null;if(null!=c||null!=d)a+=30,mxUtils.write(f,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%",f.appendChild(m),mxUtils.write(f,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=d+"px",f.appendChild(n),mxUtils.br(f);var q=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var p=null;
-if(null==k||k.constructor!=window.DriveFile||b)p=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var u=this.addCheckbox(f,mxResources.get("lightbox"),!0),G=this.addEditButton(f,u),I=G.getEditInput(),B=this.addCheckbox(f,mxResources.get("layers"),!0);B.style.marginLeft=I.style.marginLeft;B.style.marginBottom="16px";B.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(B.removeAttribute("disabled"),I.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),I.setAttribute("disabled",
-"disabled"));I.checked&&u.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(q.getTarget(),q.getColor(),null==p?!0:p.checked,u.checked,G.getLink(),B.checked,null!=m?m.value:null,null!=n?n.value:null)}),null,mxResources.get("create"),h);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,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),
-!0),e=this.editor.graph,k=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,l,m){l=null!=l?l:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=
-this.editor.graph,k="jpeg"==m?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(n);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":");
-var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";f.appendChild(v);mxUtils.br(f);var p=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=m),u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.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");g&&(f.appendChild(y),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),k+=26,mxEvent.addListener(u,"change",function(){u.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(y.setAttribute("checked","checked"),y.defaultChecked=!0);var I=this.addCheckbox(f,mxResources.get("shadow"),h.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&&(f.appendChild(B),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),k+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=m),H=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=m);M.style.marginLeft="24px";M.style.marginBottom="16px";H||(M.style.display=
-"none");mxEvent.addListener(D,"change",function(){D.checked&&H?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});l&&H||M.setAttribute("disabled","disabled");var K=document.createElement("select");K.style.maxWidth="260px";K.style.marginLeft="8px";K.style.marginRight="10px";K.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");
-mxUtils.write(a,mxResources.get("openInNewWindow"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));K.appendChild(a);"svg"==m&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(K),mxUtils.br(f),mxUtils.br(f),k+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=q.value;e(q.value,p.checked,!u.checked,I.checked,D.checked,B.checked,v.value,y.checked,
-!M.checked,K.value)}),null,c,d);this.showDialog(c.container,340,k,!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 f=document.createElement("div");f.style.whiteSpace="nowrap";var h=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";
-f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),l=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),m=this.addCheckbox(f,c),n=this.addCheckbox(f,mxResources.get("lightbox"),!0),q=this.addEditButton(f,n),u=q.getEditInput(),F=1<h.model.getChildCount(h.model.getRoot()),E=this.addCheckbox(f,mxResources.get("layers"),F,!F);E.style.marginLeft=u.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked?
-(F&&E.removeAttribute("disabled"),u.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(k.checked,l.checked,m.checked,n.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,g,l,m){function f(b){var f=" ",k="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;");
-a&&(k+="max-width:100%;");var m="";c&&(m=' width="'+Math.round(h.width)+'" height="'+Math.round(h.height)+'"');l('<img src="'+b+'"'+m+(""!=k?' style="'+k+'"':"")+f+"/>")}var h=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");f(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),
-h.width*h.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";c&&(k="&w="+Math.round(2*h.width)+"&h="+Math.round(2*h.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+k+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?f("data:image/png;base64,"+n.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
-b,c,d,e,g,l){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var k=0;k<h.length;k++){var m=h[k].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==h[k].getAttribute("target")&&h[k].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var n=" ",q="";d&&(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"+
-(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",q+="cursor:pointer;");a&&(q+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(a){l('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=q?' style="'+q+'"':"")+n+"/>")}))}else q="",d&&(f.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"+
-(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),a&&(a=parseInt(f.getAttribute("width")),b=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+a+" "+b),q+="max-width:100%;max-height:"+b+"px;",f.removeAttribute("height")),""!=q&&f.setAttribute("style",q),l(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
+"type-embedhtmldialog");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(n);mxUtils.br(h);h.appendChild(g);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));h.appendChild(n);var t=this.getCurrentFile();null==c&&null!=t&&t.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")),h.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var k=this.addLinkSection(f),l=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");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="100%";f.appendChild(m);var u=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),I=this.addEditButton(f,G),A=I.getEditInput();A.style.marginBottom="16px";mxEvent.addListener(G,"change",function(){G.checked?A.removeAttribute("disabled"):
+A.setAttribute("disabled","disabled");A.checked&&G.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,m.value,k.getTarget(),k.getColor(),u.checked,F.checked,E.checked,G.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace=
+"nowrap";var h=document.createElement("h3");mxUtils.write(h,a||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var n=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=n&&n.constructor==window.DriveFile&&!b){a=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",t=document.createElement("div");t.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"));t.appendChild(k);k=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(n.getId())}));k.style.marginTop="12px";k.className="geBtn";t.appendChild(k);f.appendChild(t);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"));
+t.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 l=null,m=null;if(null!=c||null!=d)a+=30,mxUtils.write(f,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%",f.appendChild(l),mxUtils.write(f,mxResources.get("height")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.width="50px",m.style.marginLeft="6px",m.style.marginBottom="10px",m.value=d+"px",f.appendChild(m),mxUtils.br(f);var u=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var p=null;
+if(null==n||n.constructor!=window.DriveFile||b)p=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var q=this.addCheckbox(f,mxResources.get("lightbox"),!0),G=this.addEditButton(f,q),I=G.getEditInput(),A=this.addCheckbox(f,mxResources.get("layers"),!0);A.style.marginLeft=I.style.marginLeft;A.style.marginBottom="16px";A.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(A.removeAttribute("disabled"),I.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),I.setAttribute("disabled",
+"disabled"));I.checked&&q.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(u.getTarget(),u.getColor(),null==p?!0:p.checked,q.checked,G.getLink(),A.checked,null!=l?l.value:null,null!=m?m.value:null)}),null,mxResources.get("create"),h);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)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),
+!0),e=this.editor.graph,n=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,k,l){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=
+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";f.appendChild(m);mxUtils.write(f,mxResources.get("zoom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=this.lastExportZoom||"100%";f.appendChild(u);mxUtils.write(f,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";f.appendChild(p);mxUtils.br(f);var q=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=l),v=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.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");g&&(f.appendChild(y),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),n+=26,mxEvent.addListener(v,"change",function(){v.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(y.setAttribute("checked","checked"),y.defaultChecked=!0);var I=this.addCheckbox(f,mxResources.get("shadow"),h.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&&(f.appendChild(A),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),n+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),H=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=l);M.style.marginLeft="24px";M.style.marginBottom="16px";H||(M.style.display=
+"none");mxEvent.addListener(D,"change",function(){D.checked&&H?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});k&&H||M.setAttribute("disabled","disabled");var K=document.createElement("select");K.style.maxWidth="260px";K.style.marginLeft="8px";K.style.marginRight="10px";K.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");
+mxUtils.write(a,mxResources.get("openInNewWindow"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));K.appendChild(a);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(K),mxUtils.br(f),mxUtils.br(f),n+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=u.value;e(u.value,q.checked,!v.checked,I.checked,D.checked,A.checked,p.value,y.checked,
+!M.checked,K.value)}),null,c,d);this.showDialog(c.container,340,n,!0,!0);u.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=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";
+f.appendChild(g)}var n=this.addCheckbox(f,mxResources.get("fit"),!0),k=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),l=this.addCheckbox(f,c),m=this.addCheckbox(f,mxResources.get("lightbox"),!0),u=this.addEditButton(f,m),p=u.getEditInput(),F=1<h.model.getChildCount(h.model.getRoot()),E=this.addCheckbox(f,mxResources.get("layers"),F,!F);E.style.marginLeft=p.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(m,"change",function(){m.checked?
+(F&&E.removeAttribute("disabled"),p.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),p.setAttribute("disabled","disabled"));p.checked&&m.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(n.checked,k.checked,l.checked,m.checked,u.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,g,k,l){function f(b){var f=" ",n="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;");
+a&&(n+="max-width:100%;");var t="";c&&(t=' width="'+Math.round(h.width)+'" height="'+Math.round(h.height)+'"');k('<img src="'+b+'"'+t+(""!=n?' style="'+n+'"':"")+f+"/>")}var h=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");f(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),
+h.width*h.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var n="";c&&(n="&w="+Math.round(2*h.width)+"&h="+Math.round(2*h.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()?f("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,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var n=0;n<h.length;n++){var l=h[n].getAttribute("href");null!=l&&"#"==l.charAt(0)&&"_blank"==h[n].getAttribute("target")&&h[n].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var m=" ",u="";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"+
+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",u+="cursor:pointer;");a&&(u+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(a){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=u?' style="'+u+'"':"")+m+"/>")}))}else u="",d&&(f.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"+
+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(f.getAttribute("width")),b=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+a+" "+b),u+="max-width:100%;max-height:"+b+"px;",f.removeAttribute("height")),""!=u&&f.setAttribute("style",u),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
 " "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){a.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(b),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this,
 function(){d()}))}),0)):d()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],f=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:f.apply(this,arguments)}}}null!=c&&(d=b.decompress(mxUtils.getTextContent(c)),null!=d&&0<d.length&&(a=mxUtils.parseXml(d).documentElement))}d=
-this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(p){}finally{this.editor.graph=d}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()),
+this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(q){}finally{this.editor.graph=d}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,h=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(h.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(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,g,l){l=b.background;l==mxConstants.NONE&&(l=null);b=b.getSvg(l,null,null,null,null,g);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,g,l,m,n){n=null!=n?n:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;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,m):null,n)}catch(x){"Invalid image"==x.message?this.downloadFile(n):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,g,l)}catch(w){this.spinner.stop(),this.handleError(w)}}};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,f={},e=mxUtils.bind(this,function(){if(0==d){for(var e=[c[0]],h=1;h<c.length;h++){var g=c[h].indexOf(")");e.push('url("');e.push(f[b(c[h].substring(0,g))]);e.push('"'+c[h].substring(g))}this.editor.resolvedFontCss=e.join("");a()}});if(0<c.length)for(var g=1;g<c.length;g++){var l=c[g].indexOf(")"),m=null,t=c[g].indexOf("format(",l);0<t&&(m=b(c[g].substring(t+7,c[g].indexOf(")",t))));mxUtils.bind(this,function(a){if(null==
-f[a]){f[a]=a;d++;var b="application/x-font-ttf";if("svg"==m||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.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){f[a]=b;d--;e()}),mxUtils.bind(this,function(a){d--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[g].substring(0,l)),m)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,g,l,m,n,t,w,x,C,z){g=null!=g?g:!0;x=null!=x?x:this.editor.graph;C=null!=C?C:0;var f=n?null:x.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==n&&
-(f=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(f,null,null,z,null,null!=l?l:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),k=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));m=null!=m?m:1;null!=b&&(m=g?Math.min(1,Math.min(3*b/(4*l),b/k)):b/k);k=Math.ceil(m*k)+2*C;l=Math.ceil(m*l)+2*C;h.setAttribute("width",k);h.setAttribute("height",l);var t=h.getContext("2d");null!=
-f&&(t.beginPath(),t.rect(0,0,k,l),t.fillStyle=f,t.fill());t.scale(m,m);mxClient.IS_SF?window.setTimeout(function(){t.drawImage(d,C/m,C/m);a(h)},0):(t.drawImage(d,C/m,C/m),a(h))}catch(K){null!=e&&e(K)}});d.onerror=function(a){null!=e&&e(a)};try{t&&this.editor.graph.addSvgShadow(c);var h=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(h)}catch(B){null!=e&&e(B)}}),c,w)};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,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=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=d.convert(c.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=e[h];null==k?(f++,this.convertImageToDataUri(h,function(d){null!=d&&(e[h]=d,c.setAttribute(g,
-d));f--;0==f&&b(a)})):c.setAttribute(g,k)}else null!=h&&c.setAttribute(g,h)})(h[k])});c("image","xlink:href");c("img","src");0==f&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,g){try{var f=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var h=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(f){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("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(A){null!=c&&c(A)}};EditorUi.prototype.isCorsEnabledForUrl=
+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,g,k){k=b.background;k==mxConstants.NONE&&(k=null);b=b.getSvg(k,null,null,null,null,g);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,g,k,l,m){m=null!=m?m:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;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,g,k)}catch(w){this.spinner.stop(),this.handleError(w)}}};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,f={},e=mxUtils.bind(this,function(){if(0==d){for(var e=[c[0]],g=1;g<c.length;g++){var h=c[g].indexOf(")");e.push('url("');e.push(f[b(c[g].substring(0,h))]);e.push('"'+c[g].substring(h))}this.editor.resolvedFontCss=e.join("");a()}});if(0<c.length)for(var g=1;g<c.length;g++){var k=c[g].indexOf(")"),l=null,t=c[g].indexOf("format(",k);0<t&&(l=b(c[g].substring(t+7,c[g].indexOf(")",t))));mxUtils.bind(this,function(a){if(null==
+f[a]){f[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){f[a]=b;d--;e()}),mxUtils.bind(this,function(a){d--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[g].substring(0,k)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,g,k,l,m,t,w,x,C,z){g=null!=g?g:!0;x=null!=x?x:this.editor.graph;C=null!=C?C:0;var f=m?null:x.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==m&&
+(f=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(f,null,null,z,null,null!=k?k:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=g?Math.min(1,Math.min(3*b/(4*k),b/n)):b/n);n=Math.ceil(l*n)+2*C;k=Math.ceil(l*k)+2*C;h.setAttribute("width",n);h.setAttribute("height",k);var t=h.getContext("2d");null!=
+f&&(t.beginPath(),t.rect(0,0,n,k),t.fillStyle=f,t.fill());t.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){t.drawImage(d,C/l,C/l);a(h)},0):(t.drawImage(d,C/l,C/l),a(h))}catch(K){null!=e&&e(K)}});d.onerror=function(a){null!=e&&e(a)};try{t&&this.editor.graph.addSvgShadow(c);var h=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(h)}catch(A){null!=e&&e(A)}}),c,w)};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,f=c||{};c=mxUtils.bind(this,function(c,g){for(var h=a.getElementsByTagName(c),n=0;n<h.length;n++)mxUtils.bind(this,function(c){var h=d.convert(c.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var n=f[h];null==n?(e++,this.convertImageToDataUri(h,function(d){null!=d&&(f[h]=d,c.setAttribute(g,
+d));e--;0==e&&b(a)})):c.setAttribute(g,n)}else null!=h&&c.setAttribute(g,h)})(h[n])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,g){try{var f=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var h=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(f){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("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(B){null!=c&&c(B)}};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?:\/\/[^\/]*\.draw\.io\/proxy/.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"),f=a.getContext("2d");a.height=c.height;a.width=c.width;f.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 f=[];try{var g=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 l=k.getElementsByTagName("diagram");if(1==l.length)k=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(l[0]))).documentElement;else if(1<l.length){g.model.beginUpdate();try{for(a=0;a<l.length;a++){l[a].removeAttribute("id");var m=this.updatePageRoot(new DiagramPage(l[a])),
-n=this.pages.length;null==m.getName()&&m.setName(mxResources.get("pageWithNumber",[n+1]));g.model.execute(new ChangePage(this,m,m,n))}}finally{g.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(f=g.importGraphModel(k,b,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,c,d){d=null!=
-d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var f=new FormData;f.append("file1",a,d);var e=new XMLHttpRequest;e.open("POST",VSD_CONVERT_URL);e.responseType="blob";e.onreadystatechange=mxUtils.bind(this,function(){if(4==e.readyState)if(200<=e.status&&299>=e.status)try{e.response.name=d,this.doImportVisio(e.response,b,c)}catch(y){c(y)}else c({})});
-e.send(f)}else try{this.doImportVisio(a,b,c)}catch(y){c(y)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(h){this.handleError(h)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(u){c(u)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||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.insertAsPreText=function(a,b,c){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+a+"</pre>",b,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),d.updateCellSize(f,!0)}finally{d.getModel().endUpdate()}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,g,l){g=null!=g?g:!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()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var f=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var h=this.extractGraphModelFromPng(a),k=this.importXml(h,b,c,g,!0);if(0<k.length)return k}if("data:image/svg+xml;"==a.substring(0,
-19))try{if(h=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(h=a.substring(a.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(a.substring(a.indexOf(",")+1)),k=this.importXml(h,b,c,g,!0),0<k.length)return k}catch(w){}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){f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),d,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/d.width,this.maxImageSize/d.height)),g=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),g,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),
-null,a,f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,c,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));
-else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),e.value=a,f.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)&&
+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 f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var h=mxUtils.parseXml(a),n=this.editor.extractGraphModel(h.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var k=n.getElementsByTagName("diagram");if(1==k.length)n=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(k[0]))).documentElement;else if(1<k.length){g.model.beginUpdate();try{for(a=0;a<k.length;a++){k[a].removeAttribute("id");var l=this.updatePageRoot(new DiagramPage(k[a])),
+m=this.pages.length;null==l.getName()&&(l.setName(mxResources.get("pageWithNumber",[m+1])),l.needsUpdate=!0);g.model.execute(new ChangePage(this,l,l,m))}}finally{g.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(f=g.importGraphModel(n,b,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,
+b,c,d){d=null!=d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var e=new FormData;e.append("file1",a,d);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=d,this.doImportVisio(f.response,b,
+c)}catch(y){c(y)}else c({})});f.send(e)}else try{this.doImportVisio(a,b,c)}catch(y){c(y)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(h){this.handleError(h)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?
+a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(p){c(p)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||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.insertAsPreText=function(a,b,c){var d=this.editor.graph,e=null;d.getModel().beginUpdate();try{e=d.insertVertex(null,null,"<pre>"+a+"</pre>",b,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),d.updateCellSize(e,!0)}finally{d.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!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 f=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var h=this.extractGraphModelFromPng(a),n=this.importXml(h,b,
+c,g,!0);if(0<n.length)return n}if("data:image/svg+xml;"==a.substring(0,19))try{if(h=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(h=a.substring(a.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(a.substring(a.indexOf(",")+1)),n=this.importXml(h,b,c,g,!0),0<n.length)return n}catch(w){}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){f.setSelectionCell(f.insertVertex(null,
+null,"",f.snap(b),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),g=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),g,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+a+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,a,f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,
+function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,c,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),e.value=a,f.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)&&
 f.setLinkForCell(e,e.value),e.geometry.width+=f.gridSize,e.geometry.height+=f.gridSize}finally{f.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.isLucidChartData=function(a){return null!=a&&'{"state":"{\\"Properties\\":'==a.substring(0,26)};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&
 this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){if(null!=b&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(b)){var c=new Blob([a],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(a){this.importXml(a)}),
-null,b)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var f=this.dialog,e=f.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;e.apply(f,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,c,d,e,g,l,m,n,t,w){t=null!=t?t:!0;var f=!1,h=null,k=mxUtils.bind(this,function(a){var b=
-null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):b=this.importXml(a,c,d,t);null!=m&&m(b)});"image"==b.substring(0,5)?(n=!1,"image/png"==b.substring(0,9)&&(b=w?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(h=this.importXml(b,c,d,t),n=!0)),n||(h=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),t&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"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!=m&&m(a)})):null!=n&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?(f=!0,this.importVisio(n,k)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,l)?(f=!0,this.parseFile(null!=n?n:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=
-a.status&&299>=a.status?k(a.responseText):null!=m&&m(null))}),l)):/(\.v(sd|dx))($|\?)/i.test(l)||/(\.vs(s|x))($|\?)/i.test(l)||(h=this.insertTextAt(this.validateFileData(a),c,d,!0,null,t));f||null==m||m(h);return h};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,f,e,g;c<d;){f=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);
-b+="==";break}e=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);b+="=";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&
-3)<<4|(e&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,g,l,m,n,t,w,x){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;t=null!=t?t:this.maxImageBytes;var f=null!=b&&null!=c,h=!0,k=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var q=w||this.resampleThreshold,v=0;v<a.length;v++)if("image/"==a[v].type.substring(0,
-6)&&a[v].size>q){k=!0;break}var p=mxUtils.bind(this,function(){var k=this.editor.graph,n=k.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,g,h,k,l){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,d,e,g,h,k,l,f,x)});g=null!=g?g:mxUtils.bind(this,function(a){k.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=a.length,v=q,p=[],u=mxUtils.bind(this,function(a,
-b){p[a]=b;if(0==--v){this.spinner.stop();if(null!=m)m(p);else{var c=[];k.getModel().beginUpdate();try{for(var d=0;d<p.length;d++){var f=p[d]();null!=f&&(c=c.concat(f))}}finally{k.getModel().endUpdate()}}g(c)}}),A=0;A<q;A++)mxUtils.bind(this,function(f){var g=a[f],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==l||l(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var m=a.target.result,q=m.indexOf(","),v=decodeURIComponent(escape(atob(m.substring(q+1)))),
-p=mxUtils.parseXml(v),v=p.getElementsByTagName("svg");if(0<v.length){var v=v[0],B=x?null:v.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)?u(f,mxUtils.bind(this,function(){try{if(m.substring(0,q+1),null!=p){var a=p.getElementsByTagName("svg");if(0<a.length){var h=a[0],l=parseFloat(h.getAttribute("width")),
-t=parseFloat(h.getAttribute("height")),v=h.getAttribute("viewBox");if(null==v||0==v.length)h.setAttribute("viewBox","0 0 "+l+" "+t);else if(isNaN(l)||isNaN(t)){var w=v.split(" ");3<w.length&&(l=parseFloat(w[2]),t=parseFloat(w[3]))}m=this.createSvgDataUri(mxUtils.getXml(h));var u=Math.min(1,Math.min(d/Math.max(1,l)),d/Math.max(1,t)),x=e(m,g.type,b+f*n,c+f*n,Math.max(1,Math.round(l*u)),Math.max(1,Math.round(t*u)),g.name);if(isNaN(l)||isNaN(t)){var B=new Image;B.onload=mxUtils.bind(this,function(){l=
-Math.max(1,B.width);t=Math.max(1,B.height);x[0].geometry.width=l;x[0].geometry.height=t;h.setAttribute("viewBox","0 0 "+l+" "+t);m=this.createSvgDataUri(mxUtils.getXml(h));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));k.setCellStyles("image",m,[x[0]])});B.src=this.createSvgDataUri(mxUtils.getXml(h))}return x}}}catch(fa){}return null})):u(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*n,c+f*n,0,0,g.name)}))}else u(f,mxUtils.bind(this,function(){return null}))}else{v=
-!1;if("image/png"==g.type){var A=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var y=new Image;y.src=a.target.result;u(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*n,c+f*n,y.width,y.height,g.name)}));v=!0}}v||(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(k){this.resizeImage(k,a.target.result,mxUtils.bind(this,function(k,l,m){u(f,mxUtils.bind(this,function(){if(null!=k&&k.length<t){var q=h&&this.isResampleImage(a.target.result,w)?Math.min(1,Math.min(d/l,d/m)):1;return e(k,g.type,b+f*n,c+f*n,Math.round(l*q),Math.round(m*q),g.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),h,d,w)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else e(a.target.result,
-g.type,b+f*n,c+f*n,240,160,g.name,function(a){u(f,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?e(null,g.type,b+f*n,c+f*n,240,160,g.name,function(a){u(f,function(){return a})},g):"image"==g.type.substring(0,5)?m.readAsDataURL(g):m.readAsText(g)})(A)});k?this.confirmImageResize(function(a){h=a;p()},n):p()};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,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){b(f)};f.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,g){e=null!=e?e:this.maxImageSize;var f=Math.max(1,a.width),
-h=Math.max(1,a.height);if(d&&this.isResampleImage(b,g))try{var k=Math.max(f/e,h/e);if(1<k){var l=Math.round(f/k),m=Math.round(h/k),n=document.createElement("canvas");n.width=l;n.height=m;n.getContext("2d").drawImage(a,0,0,l,m);var q=n.toDataURL();if(q.length<b.length){var p=document.createElement("canvas");p.width=l;p.height=m;var u=p.toDataURL();q!==u&&(b=q,f=l,h=m)}}}catch(E){}c(b,f,h)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var d=c,e=0;8>e;e++)d=1==(d&1)?3988292384^d>>>1:d>>>
-1,EditorUi.prototype.crcTable[c]=d;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var f=0;f<d;f++)a=EditorUi.prototype.crcTable[(a^b[c+f])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=f(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(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,k);do{var l=g(a);if("IDAT"==f(a,4)){e=a.substring(0,k-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+=h(c.length)+b+c+h(d^4294967295);e+=a.substring(k-8,a.length);break}e+=a.substring(k-8,k-4+l);f(a,l);f(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,f){a=d.substring(a+
-8,a+8+f);"zTXt"==c?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(f+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(u){}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 g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(B){a.handleError(B)}return c};var c=this.clearDefaultStyle;
+null,b)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,c,d,e,g,k,l,m,t,w){t=null!=t?t:!0;var f=!1,h=null,n=mxUtils.bind(this,function(a){var b=
+null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,k)):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=w?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(h=this.importXml(b,c,d,t),m=!0)),m||(h=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),t&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"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!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(m,n)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,k)?(f=!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))}),k)):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(h=this.insertTextAt(this.validateFileData(a),c,d,!0,null,t));f||null==l||l(h);return h};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);
+b+="==";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="=";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,g,k,l,m,t,w,x){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;t=null!=t?t:this.maxImageBytes;var f=null!=b&&null!=c,h=!0,n=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var u=w||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0,
+6)&&a[p].size>u){n=!0;break}var q=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,g,h,n,k){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,d,e,g,h,n,k,f,x)});g=null!=g?g:mxUtils.bind(this,function(a){n.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var u=a.length,p=u,q=[],v=mxUtils.bind(this,function(a,
+b){q[a]=b;if(0==--p){this.spinner.stop();if(null!=l)l(q);else{var c=[];n.getModel().beginUpdate();try{for(var d=0;d<q.length;d++){var e=q[d]();null!=e&&(c=c.concat(e))}}finally{n.getModel().endUpdate()}}g(c)}}),B=0;B<u;B++)mxUtils.bind(this,function(f){var g=a[f],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==k||k(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var l=a.target.result,u=l.indexOf(","),p=decodeURIComponent(escape(atob(l.substring(u+1)))),
+q=mxUtils.parseXml(p),p=q.getElementsByTagName("svg");if(0<p.length){var p=p[0],A=x?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(f,mxUtils.bind(this,function(){try{if(l.substring(0,u+1),null!=q){var a=q.getElementsByTagName("svg");if(0<a.length){var h=a[0],k=parseFloat(h.getAttribute("width")),
+t=parseFloat(h.getAttribute("height")),p=h.getAttribute("viewBox");if(null==p||0==p.length)h.setAttribute("viewBox","0 0 "+k+" "+t);else if(isNaN(k)||isNaN(t)){var w=p.split(" ");3<w.length&&(k=parseFloat(w[2]),t=parseFloat(w[3]))}l=this.createSvgDataUri(mxUtils.getXml(h));var v=Math.min(1,Math.min(d/Math.max(1,k)),d/Math.max(1,t)),x=e(l,g.type,b+f*m,c+f*m,Math.max(1,Math.round(k*v)),Math.max(1,Math.round(t*v)),g.name);if(isNaN(k)||isNaN(t)){var A=new Image;A.onload=mxUtils.bind(this,function(){k=
+Math.max(1,A.width);t=Math.max(1,A.height);x[0].geometry.width=k;x[0].geometry.height=t;h.setAttribute("viewBox","0 0 "+k+" "+t);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,[x[0]])});A.src=this.createSvgDataUri(mxUtils.getXml(h))}return x}}}catch(fa){}return null})):v(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*m,c+f*m,0,0,g.name)}))}else v(f,mxUtils.bind(this,function(){return null}))}else{p=
+!1;if("image/png"==g.type){var B=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var y=new Image;y.src=a.target.result;v(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*m,c+f*m,y.width,y.height,g.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(n){this.resizeImage(n,a.target.result,mxUtils.bind(this,function(n,k,l){v(f,mxUtils.bind(this,function(){if(null!=n&&n.length<t){var u=h&&this.isResampleImage(a.target.result,w)?Math.min(1,Math.min(d/k,d/l)):1;return e(n,g.type,b+f*m,c+f*m,Math.round(k*u),Math.round(l*u),g.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),h,d,w)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else e(a.target.result,
+g.type,b+f*m,c+f*m,240,160,g.name,function(a){v(f,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?e(null,g.type,b+f*m,c+f*m,240,160,g.name,function(a){v(f,function(){return a})},g):"image"==g.type.substring(0,5)?l.readAsDataURL(g):l.readAsText(g)})(B)});n?this.confirmImageResize(function(a){h=a;q()},m):q()};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,g){e=null!=e?e:this.maxImageSize;var f=Math.max(1,a.width),
+h=Math.max(1,a.height);if(d&&this.isResampleImage(b,g))try{var n=Math.max(f/e,h/e);if(1<n){var k=Math.round(f/n),l=Math.round(h/n),m=document.createElement("canvas");m.width=k;m.height=l;m.getContext("2d").drawImage(a,0,0,k,l);var u=m.toDataURL();if(u.length<b.length){var p=document.createElement("canvas");p.width=k;p.height=l;var q=p.toDataURL();u!==q&&(b=u,f=k,h=l)}}}catch(E){}c(b,f,h)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var d=c,e=0;8>e;e++)d=1==(d&1)?3988292384^d>>>1:d>>>
+1,EditorUi.prototype.crcTable[c]=d;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.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=n;n+=b;return a.substring(c,n)}function g(a){a=f(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 n=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,n);do{var k=g(a);if("IDAT"==f(a,4)){e=a.substring(0,n-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+=h(c.length)+b+c+h(d^4294967295);e+=a.substring(n-8,a.length);break}e+=a.substring(n-8,n-4+k);f(a,k);f(a,4)}while(k);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+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(p){}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 g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(A){a.handleError(A)}return c};var c=this.clearDefaultStyle;
 this.clearDefaultStyle=function(){c.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var d=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");
 return d.apply(this,arguments)};var e=b.addClickHandler;b.addClickHandler=function(a,c,d){var f=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=f&&f(a,c)};e.call(this,a,c,d)};g.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=
-function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var m=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||
-!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))m.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var n=this.actions.get("print");n.setEnabled(!mxClient.IS_IOS||!navigator.standalone);n.visible=n.isEnabled();if(!this.editor.chromeless||
-this.editor.editable){var A=function(){window.setTimeout(function(){t.innerHTML="&nbsp;";t.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||
+function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var k=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:k.apply(this,arguments)};var l=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||
+!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))l.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var m=this.actions.get("print");m.setEnabled(!mxClient.IS_IOS||!navigator.standalone);m.visible=m.isEnabled();if(!this.editor.chromeless||
+this.editor.editable){var B=function(){window.setTimeout(function(){t.innerHTML="&nbsp;";t.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||
 b.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 t=document.createElement("div");t.style.position="absolute";t.style.whiteSpace="nowrap";t.style.overflow="hidden";t.style.display="block";t.contentEditable=!0;mxUtils.setOpacity(t,0);t.style.width="1px";t.style.height="1px";t.innerHTML="&nbsp;";var w=!1;this.keyHandler.bindControlKey(88,null);
 this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||w||(t.style.left=b.container.scrollLeft+10+"px",t.style.top=b.container.scrollTop+10+"px",b.container.appendChild(t),
 w=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){t.focus();document.execCommand("selectAll",!1,null)},0):(t.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!w||224!=c&&17!=c&&91!=c||(w=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),t.parentNode.removeChild(t),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(t,
-"copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t),A())}));mxEvent.addListener(t,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t,!0),A())}));mxEvent.addListener(t,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(t.innerHTML="&nbsp;",t.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,t);t.innerHTML="&nbsp;"}),0))}),!0);var x=this.isSelectionAllowed;this.isSelectionAllowed=
+"copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t),B())}));mxEvent.addListener(t,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t,!0),B())}));mxEvent.addListener(t,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(t.innerHTML="&nbsp;",t.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,t);t.innerHTML="&nbsp;"}),0))}),!0);var x=this.isSelectionAllowed;this.isSelectionAllowed=
 function(a){return mxEvent.getSource(a)==t?!0:x.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){n=document.createElement("div");n.style.position="absolute";n.style.top="95px";n.style.left="250px";n.style.width="2000px";n.style.height="30px";n.style.background=
-"whiteSmoke";document.body.appendChild(n);var C=document.createElement("div");C.style.position="absolute";C.style.top="125px";C.style.left="220px";C.style.width="30px";C.style.height="1000px";C.style.background="whiteSmoke";document.body.appendChild(C);var z=document.createElement("div");z.style.position="absolute";z.style.top="95px";z.style.left="220px";z.style.width="30px";z.style.height="30px";z.style.background="whiteSmoke";document.body.appendChild(z);this.vRuler=new mxRuler(this.editor.graph,
-C,!0);this.hRuler=new mxRuler(this.editor.graph,n,!1)}if("1"==urlParams.styledev){n=document.getElementById("geFooter");null!=n&&(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)})),n.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 F=this.isSelectionAllowed;
-this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}n=document.getElementById("geInfo");null!=n&&n.parentNode.removeChild(n);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==
+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){m=document.createElement("div");m.style.position="absolute";m.style.top="95px";m.style.left="250px";m.style.width="2000px";m.style.height="30px";m.style.background=
+"whiteSmoke";document.body.appendChild(m);var C=document.createElement("div");C.style.position="absolute";C.style.top="125px";C.style.left="220px";C.style.width="30px";C.style.height="1000px";C.style.background="whiteSmoke";document.body.appendChild(C);var z=document.createElement("div");z.style.position="absolute";z.style.top="95px";z.style.left="220px";z.style.width="30px";z.style.height="30px";z.style.background="whiteSmoke";document.body.appendChild(z);this.vRuler=new mxRuler(this.editor.graph,
+C,!0);this.hRuler=new mxRuler(this.editor.graph,m,!1)}if("1"==urlParams.styledev){m=document.getElementById("geFooter");null!=m&&(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)})),m.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 F=this.isSelectionAllowed;
+this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}m=document.getElementById("geInfo");null!=m&&m.parentNode.removeChild(m);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==
 E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=E&&(E.parentNode.removeChild(E),E=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;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,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var l=null,d=c.getElementsByTagName("img");
-null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(l=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var m=!0,t=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,l,null,m))});l&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){m=a;t()},mxEvent.isControlDown(a)):t()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this,
+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,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var n=null,d=c.getElementsByTagName("img");
+null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(n=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var l=!0,t=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,n,null,l))});n&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){l=a;t()},mxEvent.isControlDown(a)):t()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this,
 function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(h,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),
 f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.getLinkTitle=function(a){var b=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");0<c&&(b=this.getPageById(a.substring(c+1)),b=null!=b?b.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(b=mxResources.get("action"));return b};EditorUi.prototype.handleCustomLink=
 function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");if(a=this.getPageById(a.substring(b+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();
@@ -7813,9 +7817,9 @@ this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]
 function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor();this.addListener("gridColorChanged",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.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),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(A){}try{var c=b.getElementsByTagName("span"),
-h=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(h)&&(f=!0,e=h)}catch(A){}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(A){}}}}};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()||
+c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),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(B){}try{var c=b.getElementsByTagName("span"),
+h=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(h)&&(f=!0,e=h)}catch(B){}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(B){}}}}};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)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&&
@@ -7840,12 +7844,12 @@ k=new FilenameDialog(this,h.defaultValue||"",null!=h.okKey?mxResources.get(h.okK
 result:"edit",message:h}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.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();g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:h}),"*")}):null);this.showDialog(k.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
 try{k.init()}catch(H){g.postMessage(JSON.stringify({event:"draft",error:H.toString(),message:h}),"*")}return}if("template"==h.action){this.spinner.stop();k=1==h.enableRecent;l=1==h.enableSearch;k=new NewDialog(this,!1,null!=h.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=h.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,k?mxUtils.bind(this,function(a){this.recentReadyCallback=a;g.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,l?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(k.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));k.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("textContent"==h.action){this.editor.graph.setEnabled(!1);var m=this.editor.graph,k="";if(null!=this.pages)for(l=0;l<this.pages.length;l++){var n=m;this.currentPage!=this.pages[l]&&(n=this.createTemporaryGraph(m.getStylesheet()),n.model.setRoot(this.pages[l].root));k+=this.pages[l].getName()+" "+n.getIndexableText()+" "}else k=m.getIndexableText();this.editor.graph.setEnabled(!0);
+h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,h.errorMsg);else{if("textContent"==h.action){this.editor.graph.setEnabled(!1);var n=this.editor.graph,k="";if(null!=this.pages)for(l=0;l<this.pages.length;l++){var m=n;this.currentPage!=this.pages[l]&&(m=this.createTemporaryGraph(n.getStylesheet()),m.model.setRoot(this.pages[l].root));k+=this.pages[l].getName()+" "+m.getIndexableText()+" "}else k=n.getIndexableText();this.editor.graph.setEnabled(!0);
 g.postMessage(JSON.stringify({event:"textContent",data:k,message:h}),"*");return}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 v=null!=h.messageKey?mxResources.get(h.messageKey):h.message;null==h.show||h.show?this.spinner.spin(document.body,v):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 q=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var m=this.editor.graph,p=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(q);g.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(q))));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container);p(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var m=this.createTemporaryGraph(m.getStylesheet()),y=m.getGlobalVariable,B=this.pages[0];m.getGlobalVariable=function(a){return"page"==a?B.getName():"pagenumber"==a?1:y.apply(this,
-arguments)};document.body.appendChild(m.container);m.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,m)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?p("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);v=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))k=this.getXmlFileData(),v.xml=mxUtils.getXml(k),v.data=this.getFileData(null,null,!0,null,null,null,k),v.format=h.format;else if("html"==h.format)q=this.editor.getGraphXml(),v.data=this.getHtml(q,this.editor.graph),v.xml=mxUtils.getXml(q),v.format=h.format;
+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 q=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var n=this.editor.graph,u=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(q);g.postMessage(JSON.stringify(b),"*")}),p=
+mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));n!=this.editor.graph&&n.container.parentNode.removeChild(n.container);u(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var n=this.createTemporaryGraph(n.getStylesheet()),y=n.getGlobalVariable,A=this.pages[0];n.getGlobalVariable=function(a){return"page"==a?A.getName():"pagenumber"==a?1:y.apply(this,
+arguments)};document.body.appendChild(n.container);n.model.setRoot(A.root)}this.exportToCanvas(mxUtils.bind(this,function(a){p(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){p(null)}),null,null,null,null,null,null,n)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.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()):
+p(null)}),mxUtils.bind(this,function(){p(null)}))}}else{null!=h.xml&&0<h.xml.length&&this.setFileData(h.xml);v=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))k=this.getXmlFileData(),v.xml=mxUtils.getXml(k),v.data=this.getFileData(null,null,!0,null,null,null,k),v.format=h.format;else if("html"==h.format)q=this.editor.getGraphXml(),v.data=this.getHtml(q,this.editor.graph),v.xml=mxUtils.getXml(q),v.format=h.format;
 else{mxSvgCanvas2D.prototype.foAltText=null;k=this.editor.graph.background;k==mxConstants.NONE&&(k=null);v.xml=this.getFileData(!0);v.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(v.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(a);
 g.postMessage(JSON.stringify(v),"*")})):this.convertImages(this.editor.graph.getSvg(k),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(v),"*")}));return}k="xmlsvg"==h.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(k));v.data=this.createSvgDataUri(k)}g.postMessage(JSON.stringify(v),"*")}return}if("load"==h.action)d=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"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),
@@ -7857,19 +7861,19 @@ b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChang
 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,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,g=null,h=null,l=null,m="",n="auto",x="auto",C=null,z=null,F=40,E=40,G=100,I=0,B=this.editor.graph;B.getGraphBounds();for(var D=
-function(){null!=b?b(ea):(B.setSelectionCells(ea),B.scrollCellToVisible(B.getSelectionCell()))},H=B.getFreeInsertPoint(),M=H.x,K=H.y,H=K,T=null,P="auto",l=null,S=[],aa=null,Z=null,N=0;N<c.length&&"#"==c[N].charAt(0);){a=c[N];for(N++;N<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),L=mxUtils.trim(a.substring(Y+1));"label"==Q?T=B.sanitizeHtml(L):
-"style"==Q?f=L:"parentstyle"==Q?g=L:"identity"==Q&&0<L.length&&"-"!=L?h=L:"parent"==Q&&0<L.length&&"-"!=L?l=L:"namespace"==Q&&0<L.length&&"-"!=L?m=L:"width"==Q?n=L:"height"==Q?x=L:"left"==Q&&0<L.length?C=L:"top"==Q&&0<L.length?z=L:"ignore"==Q?Z=L.split(","):"connect"==Q?S.push(JSON.parse(L)):"link"==Q?aa=L:"padding"==Q?I=parseFloat(L):"edgespacing"==Q?F=parseFloat(L):"nodespacing"==Q?E=parseFloat(L):"levelspacing"==Q?G=parseFloat(L):"layout"==Q&&(P=L)}}}var U=this.editor.csvToArray(c[N]),Q=Y=null;
-if(null!=h||null!=l)for(var R=0;R<U.length;R++)h==U[R]&&(Y=R),l==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==e[S[O].to]&&(e[S[O].to]={});B.model.beginUpdate();try{for(R=N+1;R<c.length;R++){var V=this.editor.csvToArray(c[R]);if(V.length==U.length){var J=null,X=null!=Y?m+V[Y]:null;null!=X&&(J=B.model.getCell(X));null==J&&(J=new mxCell(T,new mxGeometry(M,H,0,0),f||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=X);for(var W=0;W<V.length;W++)B.setAttributeForCell(J,U[W],
-V[W]);B.setAttributeForCell(J,"placeholders","1");J.style=B.replacePlaceholders(J,J.style);for(O=0;O<S.length;O++)e[S[O].to][J.getAttribute(S[O].to)]=J;null!=aa&&"link"!=aa&&(B.setLinkForCell(J,J.getAttribute(aa)),B.setAttributeForCell(J,aa,null));B.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var da=this.editor.graph.getPreferredSizeForCell(J);J.vertex&&(null!=C&&null!=J.getAttribute(C)&&(J.geometry.x=M+parseFloat(J.getAttribute(C))),null!=z&&null!=J.getAttribute(z)&&(J.geometry.y=K+
-parseFloat(J.getAttribute(z))),"@"==n.charAt(0)&&null!=J.getAttribute(n.substring(1))?J.geometry.width=parseFloat(J.getAttribute(n.substring(1))):J.geometry.width="auto"==n?da.width+I:parseFloat(n),"@"==x.charAt(0)&&null!=J.getAttribute(x.substring(1))?J.geometry.height=parseFloat(J.getAttribute(x.substring(1))):J.geometry.height="auto"==x?da.height+I:parseFloat(x),H+=J.geometry.height+E);l=null!=Q?B.model.getCell(m+V[Q]):null;null!=l?(l.style=B.replacePlaceholders(l,g),B.addCell(J,l)):d.push(B.addCell(J))}}for(var ba=
-d.slice(),ea=d.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<d.length;R++){var J=d[R],la=J.getAttribute(ca.from);if(null!=la){B.setAttributeForCell(J,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=e[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(J.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(B.insertEdge(null,null,T||"",ca.invert?fa:J,ca.invert?J:fa,ca.style||B.createCurrentEdgeStyle())),mxUtils.remove(ca.invert?
-J:fa,ba))}}}if(null!=Z)for(R=0;R<d.length;R++)for(J=d[R],W=0;W<Z.length;W++)B.setAttributeForCell(J,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(B);ia.spacing=F;var na=function(){ia.execute(B.getDefaultParent());for(var a=0;a<d.length;a++){var b=B.getCellGeometry(d[a]);b.x=Math.round(B.snap(b.x));b.y=Math.round(B.snap(b.y));"auto"==n&&(b.width=Math.round(B.snap(b.width)));"auto"==x&&(b.height=Math.round(B.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(B);ja.resetEdges=!1;
-var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ja.execute(B.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*d.length-1&&1==ba.length){B.view.validate();var ka=new mxCompactTreeLayout(B,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(B.getDefaultParent(),0<ba.length?ba[0]:null)},
-!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){B.view.validate();var ga=new mxHierarchicalLayout(B,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=F;ga.interRankCellSpacing=G;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(B.getDefaultParent(),ea);B.moveCells(ea,M,K)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>d.length){B.view.validate();var ha=new mxFastOrganicLayout(B);
-ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ia=new mxParallelEdgeLayout(B);ia.spacing=F;this.executeLayout(function(){ha.execute(B.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{B.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c=
+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,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,g=null,h=null,k=null,l="",m="auto",x="auto",C=null,z=null,F=40,E=40,G=100,I=0,A=this.editor.graph;A.getGraphBounds();for(var D=
+function(){null!=b?b(ea):(A.setSelectionCells(ea),A.scrollCellToVisible(A.getSelectionCell()))},H=A.getFreeInsertPoint(),M=H.x,K=H.y,H=K,T=null,P="auto",k=null,S=[],aa=null,Z=null,N=0;N<c.length&&"#"==c[N].charAt(0);){a=c[N];for(N++;N<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),L=mxUtils.trim(a.substring(Y+1));"label"==Q?T=A.sanitizeHtml(L):
+"style"==Q?f=L:"parentstyle"==Q?g=L:"identity"==Q&&0<L.length&&"-"!=L?h=L:"parent"==Q&&0<L.length&&"-"!=L?k=L:"namespace"==Q&&0<L.length&&"-"!=L?l=L:"width"==Q?m=L:"height"==Q?x=L:"left"==Q&&0<L.length?C=L:"top"==Q&&0<L.length?z=L:"ignore"==Q?Z=L.split(","):"connect"==Q?S.push(JSON.parse(L)):"link"==Q?aa=L:"padding"==Q?I=parseFloat(L):"edgespacing"==Q?F=parseFloat(L):"nodespacing"==Q?E=parseFloat(L):"levelspacing"==Q?G=parseFloat(L):"layout"==Q&&(P=L)}}}var U=this.editor.csvToArray(c[N]),Q=Y=null;
+if(null!=h||null!=k)for(var R=0;R<U.length;R++)h==U[R]&&(Y=R),k==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==e[S[O].to]&&(e[S[O].to]={});A.model.beginUpdate();try{for(R=N+1;R<c.length;R++){var V=this.editor.csvToArray(c[R]);if(V.length==U.length){var J=null,X=null!=Y?l+V[Y]:null;null!=X&&(J=A.model.getCell(X));null==J&&(J=new mxCell(T,new mxGeometry(M,H,0,0),f||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=X);for(var W=0;W<V.length;W++)A.setAttributeForCell(J,U[W],
+V[W]);A.setAttributeForCell(J,"placeholders","1");J.style=A.replacePlaceholders(J,J.style);for(O=0;O<S.length;O++)e[S[O].to][J.getAttribute(S[O].to)]=J;null!=aa&&"link"!=aa&&(A.setLinkForCell(J,J.getAttribute(aa)),A.setAttributeForCell(J,aa,null));A.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var da=this.editor.graph.getPreferredSizeForCell(J);J.vertex&&(null!=C&&null!=J.getAttribute(C)&&(J.geometry.x=M+parseFloat(J.getAttribute(C))),null!=z&&null!=J.getAttribute(z)&&(J.geometry.y=K+
+parseFloat(J.getAttribute(z))),"@"==m.charAt(0)&&null!=J.getAttribute(m.substring(1))?J.geometry.width=parseFloat(J.getAttribute(m.substring(1))):J.geometry.width="auto"==m?da.width+I:parseFloat(m),"@"==x.charAt(0)&&null!=J.getAttribute(x.substring(1))?J.geometry.height=parseFloat(J.getAttribute(x.substring(1))):J.geometry.height="auto"==x?da.height+I:parseFloat(x),H+=J.geometry.height+E);k=null!=Q?A.model.getCell(l+V[Q]):null;null!=k?(k.style=A.replacePlaceholders(k,g),A.addCell(J,k)):d.push(A.addCell(J))}}for(var ba=
+d.slice(),ea=d.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<d.length;R++){var J=d[R],la=J.getAttribute(ca.from);if(null!=la){A.setAttributeForCell(J,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=e[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(J.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(A.insertEdge(null,null,T||"",ca.invert?fa:J,ca.invert?J:fa,ca.style||A.createCurrentEdgeStyle())),mxUtils.remove(ca.invert?
+J:fa,ba))}}}if(null!=Z)for(R=0;R<d.length;R++)for(J=d[R],W=0;W<Z.length;W++)A.setAttributeForCell(J,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(A);ia.spacing=F;var na=function(){ia.execute(A.getDefaultParent());for(var a=0;a<d.length;a++){var b=A.getCellGeometry(d[a]);b.x=Math.round(A.snap(b.x));b.y=Math.round(A.snap(b.y));"auto"==m&&(b.width=Math.round(A.snap(b.width)));"auto"==x&&(b.height=Math.round(A.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(A);ja.resetEdges=!1;
+var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ja.execute(A.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*d.length-1&&1==ba.length){A.view.validate();var ka=new mxCompactTreeLayout(A,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(A.getDefaultParent(),0<ba.length?ba[0]:null)},
+!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){A.view.validate();var ga=new mxHierarchicalLayout(A,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=F;ga.interRankCellSpacing=G;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(A.getDefaultParent(),ea);A.moveCells(ea,M,K)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>d.length){A.view.validate();var ha=new mxFastOrganicLayout(A);
+ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ia=new mxParallelEdgeLayout(A);ia.spacing=F;this.executeLayout(function(){ha.execute(A.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{A.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};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,480,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.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;
+urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var k=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=k.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/a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments);
 b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.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,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;
@@ -7881,12 +7885,12 @@ if(this.isAppCache()){var d=applicationCache;if(null!=d&&null==this.offlineStatu
 "";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var d=window.applicationCache,e=null,b=mxUtils.bind(this,function(){var a=d.status,b;a==d.CHECKING&&(a=d.DOWNLOADING);switch(a){case d.UNCACHED:b="";break;case d.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+
 '/checkmark.gif"/>';break;case d.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case d.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case d.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=e&&(this.offlineStatus.innerHTML=
 b,e=a)});mxEvent.addListener(d,"checking",b);mxEvent.addListener(d,"noupdate",b);mxEvent.addListener(d,"downloading",b);mxEvent.addListener(d,"progress",b);mxEvent.addListener(d,"cached",b);mxEvent.addListener(d,"updateready",b);mxEvent.addListener(d,"obsolete",b);mxEvent.addListener(d,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();
-return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var m=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){m.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),c=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);
+return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),c=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(b);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("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);
-this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=
-null);n.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,e,g){var f=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(f.getSvg(d,e,g)),"image/svg+xml");else{var h=a.getFileData(!0,null,null,null,null,!0),l=f.getGraphBounds(),m=Math.floor(l.width*e/f.view.scale),k=Math.floor(l.height*
-e/f.view.scale);h.length<=MAX_REQUEST_SIZE&&m*k<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!=d?d:"none")+"&w="+m+"&h="+k+"&border="+g+"&xml="+encodeURIComponent(h))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();var mxSettings={currentVersion:17,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(){return mxSettings.settings.gridColor},
+this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var m=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=
+null);m.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,e,g){var f=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(f.getSvg(d,e,g)),"image/svg+xml");else{var h=a.getFileData(!0,null,null,null,null,!0),k=f.getGraphBounds(),l=Math.floor(k.width*e/f.view.scale),n=Math.floor(k.height*
+e/f.view.scale);h.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!=d?d:"none")+"&w="+l+"&h="+n+"&border="+g+"&xml="+encodeURIComponent(h))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();var mxSettings={currentVersion:17,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(){return mxSettings.settings.gridColor},
 setGridColor:function(a){mxSettings.settings.gridColor=a},getAutosave:function(){return mxSettings.settings.autosave},setAutosave:function(a){mxSettings.settings.autosave=a},getResizeImages:function(){return mxSettings.settings.resizeImages},setResizeImages:function(a){mxSettings.settings.resizeImages=a},getOpenCounter:function(){return mxSettings.settings.openCounter},setOpenCounter:function(a){mxSettings.settings.openCounter=a},getLibraries:function(){return mxSettings.settings.libraries},setLibraries:function(a){mxSettings.settings.libraries=
 a},addCustomLibrary:function(a){mxSettings.load();0>mxUtils.indexOf(mxSettings.settings.customLibraries,a)&&("L.scratchpad"===a?mxSettings.settings.customLibraries.splice(0,0,a):mxSettings.settings.customLibraries.push(a));mxSettings.save()},removeCustomLibrary:function(a){mxSettings.load();mxUtils.remove(a,mxSettings.settings.customLibraries);mxSettings.save()},getCustomLibraries:function(){return mxSettings.settings.customLibraries},getPlugins:function(){return mxSettings.settings.plugins},setPlugins:function(a){mxSettings.settings.plugins=
 a},getRecentColors:function(){return mxSettings.settings.recentColors},setRecentColors:function(a){mxSettings.settings.recentColors=a},getFormatWidth:function(){return parseInt(mxSettings.settings.formatWidth)},setFormatWidth:function(a){mxSettings.settings.formatWidth=a},isCreateTarget:function(){return mxSettings.settings.createTarget},setCreateTarget:function(a){mxSettings.settings.createTarget=a},getPageFormat:function(){return mxSettings.settings.pageFormat},setPageFormat:function(a){mxSettings.settings.pageFormat=
@@ -7899,29 +7903,29 @@ Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as=
 mxAsyncCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxAsyncCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};mxAsyncCanvas.prototype.rotate=function(a,b,c,d,e){};
 mxAsyncCanvas.prototype.setAlpha=function(a){this.state.alpha=a};mxAsyncCanvas.prototype.setFontColor=function(a){this.state.fontColor=a};mxAsyncCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxAsyncCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxAsyncCanvas.prototype.setFontSize=function(a){this.state.fontSize=a};
 mxAsyncCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxAsyncCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxAsyncCanvas.prototype.rect=function(a,b,c,d){};mxAsyncCanvas.prototype.roundrect=function(a,b,c,d,e,g){};mxAsyncCanvas.prototype.ellipse=function(a,b,c,d){};mxAsyncCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a};
-mxAsyncCanvas.prototype.image=function(a,b,c,d,e,g,l,m){e=this.rewriteImageSource(e);a=this.htmlCanvas.images[e];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[e]=a,a.src=e)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){};
-mxAsyncCanvas.prototype.text=function(a,b,c,d,e,g,l,m,n,f,h,k){if(null!=e&&0!=e.length&&(a=this.state.scale,"html"==n&&"function"===typeof html2canvas)){this.incWaitCounter();var q=this.canvasIndex++;html2canvas(e,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[q]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null;
+mxAsyncCanvas.prototype.image=function(a,b,c,d,e,g,k,l){e=this.rewriteImageSource(e);a=this.htmlCanvas.images[e];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[e]=a,a.src=e)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){};
+mxAsyncCanvas.prototype.text=function(a,b,c,d,e,g,k,l,m,f,h,n){if(null!=e&&0!=e.length&&(a=this.state.scale,"html"==m&&"function"===typeof html2canvas)){this.incWaitCounter();var u=this.canvasIndex++;html2canvas(e,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[u]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null;
 mxJsCanvas.prototype.subCanvas=null;mxJsCanvas.prototype.canvasIndex=0;mxJsCanvas.prototype.hexToRgb=function(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,c,d,e){return c+c+d+d+e+e});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null};mxJsCanvas.prototype.incWaitCounter=function(){this.waitCounter++};
 mxJsCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxJsCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};
 mxJsCanvas.prototype.save=function(){this.states.push(this.state);this.state=mxUtils.clone(this.state);this.ctx.save()};mxJsCanvas.prototype.restore=function(){this.state=this.states.pop();this.ctx.restore()};mxJsCanvas.prototype.scale=function(a){this.state.scale*=a;this.state.strokeWidth*=a;this.ctx.scale(a,a)};mxJsCanvas.prototype.translate=function(a,b){this.state.dx+=a;this.state.dy+=b;this.ctx.translate(a,b)};
 mxJsCanvas.prototype.rotate=function(a,b,c,d,e){d-=this.state.dx;e-=this.state.dy;this.ctx.translate(d,e);(b||c)&&this.ctx.scale(b?-1:1,c?-1:1);this.ctx.rotate(a*this.M_RAD_PER_DEG);this.ctx.translate(-d,-e)};mxJsCanvas.prototype.setAlpha=function(a){this.state.alpha=a;this.ctx.globalAlpha=a};mxJsCanvas.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fillColor=a;this.state.gradientColor=null;this.ctx.fillStyle=a};
-mxJsCanvas.prototype.setGradient=function(a,b,c,d,e,g,l,m,n){c=this.ctx.createLinearGradient(0,d,0,d+g);d=this.state;d.fillColor=a;d.fillAlpha=null!=m?m:1;d.gradientColor=b;d.gradientAlpha=null!=n?n:1;d.gradientDirection=l;a=this.hexToRgb(a);b=this.hexToRgb(b);null!=a&&c.addColorStop(0,"rgba("+a.r+","+a.g+","+a.b+","+d.fillAlpha+")");null!=b&&c.addColorStop(1,"rgba("+b.r+","+b.g+","+b.b+","+d.gradientAlpha+")");this.ctx.fillStyle=c};
+mxJsCanvas.prototype.setGradient=function(a,b,c,d,e,g,k,l,m){c=this.ctx.createLinearGradient(0,d,0,d+g);d=this.state;d.fillColor=a;d.fillAlpha=null!=l?l:1;d.gradientColor=b;d.gradientAlpha=null!=m?m:1;d.gradientDirection=k;a=this.hexToRgb(a);b=this.hexToRgb(b);null!=a&&c.addColorStop(0,"rgba("+a.r+","+a.g+","+a.b+","+d.fillAlpha+")");null!=b&&c.addColorStop(1,"rgba("+b.r+","+b.g+","+b.b+","+d.gradientAlpha+")");this.ctx.fillStyle=c};
 mxJsCanvas.prototype.setStrokeColor=function(a){null!=a&&(a==mxConstants.NONE?(this.state.strokeColor=null,this.ctx.strokeStyle="rgba(0, 0, 0, 0)"):(this.ctx.strokeStyle=a,this.state.strokeColor=a))};mxJsCanvas.prototype.setStrokeWidth=function(a){this.ctx.lineWidth=a};mxJsCanvas.prototype.setDashed=function(a){if(this.state.dashed=a){a=this.state.dashPattern.split(" ");for(var b=0;b<a.length;b++)a[b]=parseInt(a[b],10);this.setLineDash(a)}else this.setLineDash([0])};
 mxJsCanvas.prototype.setLineDash=function(a){try{"function"===typeof this.ctx.setLineDash&&this.ctx.setLineDash(a)}catch(b){}};mxJsCanvas.prototype.setDashPattern=function(a){this.state.dashPattern=a;if(this.state.dashed){a=a.split(" ");for(var b=0;b<a.length;b++)a[b]=parseInt(a[b],10);this.ctx.setLineDash(a)}};mxJsCanvas.prototype.setLineCap=function(a){this.ctx.lineCap=a};mxJsCanvas.prototype.setLineJoin=function(a){this.ctx.lineJoin=a};
 mxJsCanvas.prototype.setMiterLimit=function(a){this.ctx.lineJoin=a};mxJsCanvas.prototype.setFontColor=function(a){this.ctx.fillStyle=a};mxJsCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxJsCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxJsCanvas.prototype.setFontSize=function(a){this.state.fontSize=a};
 mxJsCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxJsCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxJsCanvas.prototype.setShadow=function(a){(this.state.shadow=a)?(this.setShadowOffset(this.state.shadowDx,this.state.shadowDy),this.setShadowAlpha(this.state.shadowAlpha)):(this.ctx.shadowColor="transparent",this.ctx.shadowBlur=0,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0)};
 mxJsCanvas.prototype.setShadowColor=function(a){if(null==a||a==mxConstants.NONE)a=null,this.ctx.shadowColor="transparent";this.state.shadowColor=a;if(this.state.shadow&&null!=a){var b=null!=this.state.shadowAlpha?this.state.shadowAlpha:1;a=this.hexToRgb(a);this.ctx.shadowColor="rgba("+a.r+","+a.g+","+a.b+","+b+")"}};mxJsCanvas.prototype.setShadowAlpha=function(a){this.state.shadowAlpha=a;this.setShadowColor(this.state.shadowColor)};
 mxJsCanvas.prototype.setShadowOffset=function(a,b){this.state.shadowDx=a;this.state.shadowDy=b;this.state.shadow&&(this.ctx.shadowOffsetX=a,this.ctx.shadowOffsetY=b)};mxJsCanvas.prototype.moveTo=function(a,b){this.ctx.moveTo(a,b);this.lastMoveX=a;this.lastMoveY=b};mxJsCanvas.prototype.lineTo=function(a,b){this.ctx.lineTo(a,b);this.lastMoveX=a;this.lastMoveY=b};mxJsCanvas.prototype.quadTo=function(a,b,c,d){this.ctx.quadraticCurveTo(a,b,c,d);this.lastMoveX=c;this.lastMoveY=d};
-mxJsCanvas.prototype.arcTo=function(a,b,c,d,e,g,l){a=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,a,b,c,d,e,g,l);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])};mxJsCanvas.prototype.curveTo=function(a,b,c,d,e,g){this.ctx.bezierCurveTo(a,b,c,d,e,g);this.lastMoveX=e;this.lastMoveY=g};mxJsCanvas.prototype.rect=function(a,b,c,d){this.begin();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.close()};
+mxJsCanvas.prototype.arcTo=function(a,b,c,d,e,g,k){a=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,a,b,c,d,e,g,k);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])};mxJsCanvas.prototype.curveTo=function(a,b,c,d,e,g){this.ctx.bezierCurveTo(a,b,c,d,e,g);this.lastMoveX=e;this.lastMoveY=g};mxJsCanvas.prototype.rect=function(a,b,c,d){this.begin();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.close()};
 mxJsCanvas.prototype.roundrect=function(a,b,c,d,e,g){this.begin();this.moveTo(a+e,b);this.lineTo(a+c-e,b);this.quadTo(a+c,b,a+c,b+g);this.lineTo(a+c,b+d-g);this.quadTo(a+c,b+d,a+c-e,b+d);this.lineTo(a+e,b+d);this.quadTo(a,b+d,a,b+d-g);this.lineTo(a,b+g);this.quadTo(a,b,a+e,b)};mxJsCanvas.prototype.ellipse=function(a,b,c,d){this.ctx.save();this.ctx.translate(a+c/2,b+d/2);this.ctx.scale(c/2,d/2);this.ctx.beginPath();this.ctx.arc(0,0,1,0,2*Math.PI,!1);this.ctx.restore()};
 mxJsCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a};
-mxJsCanvas.prototype.image=function(a,b,c,d,e,g,l,m){e=this.rewriteImageSource(e);e=this.images[e];if(null!=e&&0<e.height&&0<e.width){var n=this.ctx;n.save();if(g){g=e.width;var f=e.height,h=Math.min(c/g,d/f);a+=(c-g*h)/2;b+=(d-f*h)/2;c=g*h;d=f*h}l&&(n.translate(2*a+c,0),n.scale(-1,1));m&&(n.translate(0,2*b+d),n.scale(1,-1));n.drawImage(e,a,b,c,d);n.restore()}};mxJsCanvas.prototype.begin=function(){this.ctx.beginPath()};mxJsCanvas.prototype.close=function(){this.ctx.closePath()};
+mxJsCanvas.prototype.image=function(a,b,c,d,e,g,k,l){e=this.rewriteImageSource(e);e=this.images[e];if(null!=e&&0<e.height&&0<e.width){var m=this.ctx;m.save();if(g){g=e.width;var f=e.height,h=Math.min(c/g,d/f);a+=(c-g*h)/2;b+=(d-f*h)/2;c=g*h;d=f*h}k&&(m.translate(2*a+c,0),m.scale(-1,1));l&&(m.translate(0,2*b+d),m.scale(1,-1));m.drawImage(e,a,b,c,d);m.restore()}};mxJsCanvas.prototype.begin=function(){this.ctx.beginPath()};mxJsCanvas.prototype.close=function(){this.ctx.closePath()};
 mxJsCanvas.prototype.fill=function(){this.ctx.fill()};mxJsCanvas.prototype.stroke=function(){this.ctx.stroke()};mxJsCanvas.prototype.fillAndStroke=function(){if(this.state.shadow){this.ctx.stroke();this.ctx.fill();var a=this.ctx.shadowColor,b=this.ctx.shadowOffsetX,c=this.ctx.shadowOffsetY;this.ctx.shadowColor="transparent";this.ctx.shadowOffsetX=0;this.ctx.shadowOffsetY=0;this.ctx.stroke();this.ctx.shadowColor=a;this.ctx.shadowOffsetX=b;this.ctx.shadowOffsetY=c}else this.ctx.fill(),this.ctx.stroke()};
-mxJsCanvas.prototype.text=function(a,b,c,d,e,g,l,m,n,f,h,k){if(null!=e&&0!=e.length){c=this.state.scale;0!=k&&(this.ctx.translate(Math.round(a),Math.round(b)),this.ctx.rotate(k*Math.PI/180),this.ctx.translate(Math.round(-a),Math.round(-b)));if("html"==n){e=this.subCanvas[this.canvasIndex++];n=e.height;k=e.width;switch(l){case mxConstants.ALIGN_MIDDLE:b-=n/2/c;break;case mxConstants.ALIGN_BOTTOM:b-=n/c}switch(g){case mxConstants.ALIGN_CENTER:a-=k/2/c;break;case mxConstants.ALIGN_RIGHT:a-=k/c}this.ctx.save();
+mxJsCanvas.prototype.text=function(a,b,c,d,e,g,k,l,m,f,h,n){if(null!=e&&0!=e.length){c=this.state.scale;0!=n&&(this.ctx.translate(Math.round(a),Math.round(b)),this.ctx.rotate(n*Math.PI/180),this.ctx.translate(Math.round(-a),Math.round(-b)));if("html"==m){e=this.subCanvas[this.canvasIndex++];m=e.height;n=e.width;switch(k){case mxConstants.ALIGN_MIDDLE:b-=m/2/c;break;case mxConstants.ALIGN_BOTTOM:b-=m/c}switch(g){case mxConstants.ALIGN_CENTER:a-=n/2/c;break;case mxConstants.ALIGN_RIGHT:a-=n/c}this.ctx.save();
 if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor)null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(Math.round(a)-.5,Math.round(b)-.5,Math.round(e.width/c),Math.round(e.height/c))),null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(Math.round(a)-.5,Math.round(b)-.5,Math.round(e.width/c),Math.round(e.height/c)));this.ctx.scale(1/c,1/c);this.ctx.drawImage(e,
-Math.round(a*c),Math.round(b*c))}else{this.ctx.save();this.updateFont();k=document.createElement("div");k.innerHTML=e;k.style.position="absolute";k.style.top="-9999px";k.style.left="-9999px";k.style.fontFamily=this.state.fontFamily;k.style.fontWeight="bold";k.style.fontSize=this.state.fontSize+"pt";document.body.appendChild(k);n=[k.offsetWidth,k.offsetHeight];document.body.removeChild(k);e=e.split("\n");k=n[1];this.ctx.textBaseline="top";n=b;switch(l){case mxConstants.ALIGN_MIDDLE:this.ctx.textBaseline=
-"middle";b-=(e.length-1)*k/2;n=b-this.state.fontSize/2;break;case mxConstants.ALIGN_BOTTOM:this.ctx.textBaseline="alphabetic",b-=k*(e.length-1),n=b-this.state.fontSize}l=[];k=[];for(c=0;c<e.length;c++)k[c]=a,l[c]=this.ctx.measureText(e[c]).width,null!=g&&g!=mxConstants.ALIGN_LEFT&&(k[c]-=l[c],g==mxConstants.ALIGN_CENTER&&(k[c]+=l[c]/2));if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor){a=k[0];g=l[0];for(c=1;c<e.length;c++)a=Math.min(a,k[c]),g=Math.max(g,l[c]);this.ctx.save();
-a=Math.round(a)-.5;n=Math.round(n)-.5;null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));this.ctx.restore()}for(c=0;c<e.length;c++)this.ctx.fillText(e[c],k[c],b),b+=this.state.fontSize*mxConstants.LINE_HEIGHT}this.ctx.restore()}};
+Math.round(a*c),Math.round(b*c))}else{this.ctx.save();this.updateFont();n=document.createElement("div");n.innerHTML=e;n.style.position="absolute";n.style.top="-9999px";n.style.left="-9999px";n.style.fontFamily=this.state.fontFamily;n.style.fontWeight="bold";n.style.fontSize=this.state.fontSize+"pt";document.body.appendChild(n);m=[n.offsetWidth,n.offsetHeight];document.body.removeChild(n);e=e.split("\n");n=m[1];this.ctx.textBaseline="top";m=b;switch(k){case mxConstants.ALIGN_MIDDLE:this.ctx.textBaseline=
+"middle";b-=(e.length-1)*n/2;m=b-this.state.fontSize/2;break;case mxConstants.ALIGN_BOTTOM:this.ctx.textBaseline="alphabetic",b-=n*(e.length-1),m=b-this.state.fontSize}k=[];n=[];for(c=0;c<e.length;c++)n[c]=a,k[c]=this.ctx.measureText(e[c]).width,null!=g&&g!=mxConstants.ALIGN_LEFT&&(n[c]-=k[c],g==mxConstants.ALIGN_CENTER&&(n[c]+=k[c]/2));if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor){a=n[0];g=k[0];for(c=1;c<e.length;c++)a=Math.min(a,n[c]),g=Math.max(g,k[c]);this.ctx.save();
+a=Math.round(a)-.5;m=Math.round(m)-.5;null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(a,m,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(a,m,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));this.ctx.restore()}for(c=0;c<e.length;c++)this.ctx.fillText(e[c],n[c],b),b+=this.state.fontSize*mxConstants.LINE_HEIGHT}this.ctx.restore()}};
 mxJsCanvas.prototype.getCanvas=function(){return canvas};mxJsCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};DrawioClient=function(a,b){mxEventSource.call(this);this.ui=a;this.cookieName=b;this.token=this.getPersistentToken()};mxUtils.extend(DrawioClient,mxEventSource);DrawioClient.prototype.token=null;DrawioClient.prototype.user=null;DrawioClient.prototype.setUser=function(a){this.user=a;this.fireEvent(new mxEventObject("userChanged"))};DrawioClient.prototype.getUser=function(){return this.user};
 DrawioClient.prototype.clearPersistentToken=function(){if(isLocalStorage)localStorage.removeItem("."+this.cookieName);else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie=this.cookieName+"=; expires="+a.toUTCString()}};
 DrawioClient.prototype.getPersistentToken=function(){var a=null;isLocalStorage&&(a=localStorage.getItem("."+this.cookieName));if(null==a&&"undefined"!=typeof Storage){var b=document.cookie,c=this.cookieName+"=",d=b.indexOf(c);0<=d&&(d+=c.length,a=b.indexOf(";",d),0>a?a=b.length:postCookie=b.substring(a),a=b.substring(d,a),a=0<a.length?a:null,null!=a&&isLocalStorage&&(b=new Date,b.setYear(b.getFullYear()-1),document.cookie=c+"; expires="+b.toUTCString(),localStorage.setItem("."+this.cookieName,a)))}return a};
@@ -7930,15 +7934,16 @@ this.ui.drive.addListener("disconnected",this.disconnectListener);this.autosaveC
 a});this.ui.editor.addListener("autosaveChanged",this.autosaveChangeListener)}DriveRealtime.prototype.logLevel=2;DriveRealtime.prototype.updateStatusInterval=2E4;DriveRealtime.prototype.diagramsKey="diagrams";DriveRealtime.prototype.diagrams=null;DriveRealtime.prototype.rootKey="root";DriveRealtime.prototype.diagramMap=null;DriveRealtime.prototype.chatHistory=null;DriveRealtime.prototype.saving=!1;DriveRealtime.prototype.defaultRealtimeAutosaveDelay=5E3;
 DriveRealtime.prototype.defaultRealtimeMaxAutosaveDelay=6E4;DriveRealtime.prototype.realtimeHeartbeat=3E4;DriveRealtime.prototype.ignoreChange=!1;DriveRealtime.prototype.ignorePageFormatChanged=!1;DriveRealtime.prototype.ignoreScaleChanged=!1;DriveRealtime.prototype.ignoreBackgroundColorChanged=!1;DriveRealtime.prototype.ignoreShadowVisibleChanged=!1;DriveRealtime.prototype.ignoreBackgroundImageChanged=!1;DriveRealtime.prototype.ignoreMathEnabledChanged=!1;
 DriveRealtime.prototype.getDiagramMap=function(){return null!=this.ui.currentPage?this.ui.currentPage.mapping.diagramMap:this.diagramMap};DriveRealtime.prototype.getCurrentPage=function(){return null!=this.page?this.page:this.ui.currentPage};
-DriveRealtime.prototype.start=function(){"1"==urlParams.reset&&(this.root.clear(),this.log("reset realtime"));var a=this.createPrefix();this.model.prefix=a+"-";this.ui.editor.resetGraph();this.diagrams=this.root.get(this.diagramsKey);a=!1;null==this.diagrams&&(this.diagrams=this.rtModel.createList(),this.root.set(this.diagramsKey,this.diagrams),a=!0,this.log("realtime model initialized"));var b=!1;if(""!=this.file.getData()){this.ui.fileNode=null;this.ui.pages=null;this.ui.setFileData(this.file.getData());
-this.log("xml converted");if(this.root.has("cells")&&a)try{(new Image).src="https://log.draw.io/log?severity=CONFIG&msg=converted-oldrt&v="+encodeURIComponent(EditorUi.VERSION)+"&ts="+(new Date).getTime()}catch(e){}if(null!=this.ui.pages)for(a=0;a<this.ui.pages.length;a++){var c=this.ui.pages[a],d=this.rtModel.createMap();this.diagrams.push(d);this.ui.updatePageRoot(c);c.mapping=new RealtimeMapping(this,d,c);this.file.isEditable()&&(d.set("id",c.getId()),""!=c.getName()?d.set("name",c.getName()):
-d.has("name")||d.set("name",mxResources.get("pageWithNumber",[a+1])));c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1]));c.mapping.init()}else"0"==urlParams.pages?(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap),this.page=new DiagramPage(document.createElement("diagram")),this.page.mapping=new RealtimeMapping(this,this.diagramMap,this.page),this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.diagramMap.set("id",this.page.getId()),this.page.setName(this.diagramMap.get("name")),
-this.page.mapping.init()):(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],d=this.rtModel.createMap(),this.diagrams.push(d),c=new DiagramPage(this.ui.fileNode.ownerDocument.createElement("diagram")),c.mapping=new RealtimeMapping(this,d,c),this.ui.currentPage=c,this.file.isEditable()&&!c.mapping.diagramMap.has("name")&&(c.mapping.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),c.mapping.diagramMap.set("id",c.getId())),c.setName(c.mapping.diagramMap.get("name")||
-mxResources.get("pageWithNumber",[1])),this.ui.pages.push(c),c.mapping.init());b=!0}else if(2>this.diagrams.length&&"0"==urlParams.pages)this.ui.fileNode=null,this.ui.pages=null,0==this.diagrams.length?(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap)):this.diagramMap=this.diagrams.get(0),c=document.createElement("diagram"),this.diagramMap.has("id")&&c.setAttribute("id",this.diagramMap.get("id")),this.page=new DiagramPage(c),this.page.mapping=new RealtimeMapping(this,this.diagramMap,
-this.page),this.diagramMap.has("name")||this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.page.setName(this.page.mapping.diagramMap.get("name")),this.diagramMap.set("id",this.page.getId()),this.page.mapping.init(),this.ui.editor.fireEvent(new mxEventObject("resetGraphView"));else{this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile");this.ui.pages=[];0==this.diagrams.length&&this.diagrams.push(this.rtModel.createMap());for(a=0;a<this.diagrams.length;a++)c=this.ui.fileNode.ownerDocument.createElement("diagram"),
-d=this.diagrams.get(a),d.has("id")&&c.setAttribute("id",d.get("id")),c=new DiagramPage(c),c.mapping=new RealtimeMapping(this,d,c),this.file.isEditable()&&!d.has("name")&&d.set("name",mxResources.get("pageWithNumber",[a+1])),c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1])),this.file.isEditable()&&!d.has("id")&&d.set("id",c.getId()),this.ui.pages.push(c);this.ui.currentPage=this.ui.pages[Math.max(0,Math.min(this.ui.pages.length-1,urlParams.page||0))];for(a=0;a<this.ui.pages.length;a++)this.ui.pages[a].mapping.init()}this.installReadOnlyListener();
-this.installUiChangeListeners();this.installGraphModelListener();this.installPageSelectListener();this.chatHistory=this.root.get("chatHistory");null==this.chatHistory&&this.initializeChat();this.installSelectionModelListener();this.installCollaboratorListener();this.updateCollaborators();this.doc.addEventListener(gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED,mxUtils.bind(this,function(a){this.documentSaveStateChanged(a,b)}));a=mxUtils.bind(this,function(){this.resetUpdateStatusThread();
-this.ui.resetScrollbars();this.updateStatus();b=!1});b?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.file.save(!1,a,a)):a();null==this.previousUndoListener&&(this.previousUndoListener=this.ui.editor.undoListener,this.ui.editor.undoListener=mxUtils.bind(this,function(a,b){this.ignoreChange||this.previousUndoListener.apply(this,arguments)}))};
+DriveRealtime.prototype.start=function(){"1"==urlParams.reset&&(this.root.clear(),this.log("reset realtime"));this.root.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,mxUtils.bind(this,function(a){"realtimeConverted"==a.property&&this.ui.showRefreshDialog()}));this.root.has("realtimeConverted")&&this.ui.showRefreshDialog();var a=this.createPrefix();this.model.prefix=a+"-";this.ui.editor.resetGraph();this.diagrams=this.root.get(this.diagramsKey);a=!1;null==this.diagrams&&(this.diagrams=
+this.rtModel.createList(),this.root.set(this.diagramsKey,this.diagrams),a=!0,this.log("realtime model initialized"));var b=!1;if(""!=this.file.getData()){this.ui.fileNode=null;this.ui.pages=null;this.ui.setFileData(this.file.getData());this.log("xml converted");if(this.root.has("cells")&&a)try{(new Image).src="https://log.draw.io/log?severity=CONFIG&msg=converted-oldrt&v="+encodeURIComponent(EditorUi.VERSION)+"&ts="+(new Date).getTime()}catch(e){}if(null!=this.ui.pages)for(a=0;a<this.ui.pages.length;a++){var c=
+this.ui.pages[a],d=this.rtModel.createMap();this.diagrams.push(d);this.ui.updatePageRoot(c);c.mapping=new RealtimeMapping(this,d,c);this.file.isEditable()&&(d.set("id",c.getId()),""!=c.getName()?d.set("name",c.getName()):d.has("name")||d.set("name",mxResources.get("pageWithNumber",[a+1])));c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1]));c.mapping.init()}else"0"==urlParams.pages?(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap),this.page=new DiagramPage(document.createElement("diagram")),
+this.page.mapping=new RealtimeMapping(this,this.diagramMap,this.page),this.file.isEditable()&&(this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.diagramMap.set("id",this.page.getId())),this.page.setName(this.diagramMap.get("name")||mxResources.get("pageWithNumber",[1])),this.page.mapping.init()):(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],d=this.rtModel.createMap(),this.diagrams.push(d),c=new DiagramPage(this.ui.fileNode.ownerDocument.createElement("diagram")),
+c.mapping=new RealtimeMapping(this,d,c),this.ui.currentPage=c,this.file.isEditable()&&(c.mapping.diagramMap.has("name")||c.mapping.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),c.mapping.diagramMap.has("id")||c.mapping.diagramMap.set("id",c.getId())),c.setName(c.mapping.diagramMap.get("name")||mxResources.get("pageWithNumber",[1])),this.ui.pages.push(c),c.mapping.init());b=!0}else if(2>this.diagrams.length&&"0"==urlParams.pages)this.ui.fileNode=null,this.ui.pages=null,0==this.diagrams.length?
+(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap)):this.diagramMap=this.diagrams.get(0),c=document.createElement("diagram"),this.diagramMap.has("id")&&c.setAttribute("id",this.diagramMap.get("id")),this.page=new DiagramPage(c),this.page.mapping=new RealtimeMapping(this,this.diagramMap,this.page),this.diagramMap.has("name")||this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.page.setName(this.page.mapping.diagramMap.get("name")),this.diagramMap.set("id",
+this.page.getId()),this.page.mapping.init(),this.ui.editor.fireEvent(new mxEventObject("resetGraphView"));else{this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile");this.ui.pages=[];0==this.diagrams.length&&this.diagrams.push(this.rtModel.createMap());for(a=0;a<this.diagrams.length;a++)c=this.ui.fileNode.ownerDocument.createElement("diagram"),d=this.diagrams.get(a),d.has("id")&&c.setAttribute("id",d.get("id")),c=new DiagramPage(c),c.mapping=new RealtimeMapping(this,d,c),this.file.isEditable()&&
+!d.has("name")&&d.set("name",mxResources.get("pageWithNumber",[a+1])),c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1])),this.file.isEditable()&&!d.has("id")&&d.set("id",c.getId()),this.ui.pages.push(c);this.ui.currentPage=this.ui.pages[Math.max(0,Math.min(this.ui.pages.length-1,urlParams.page||0))];for(a=0;a<this.ui.pages.length;a++)this.ui.pages[a].mapping.init()}this.installReadOnlyListener();this.installUiChangeListeners();this.installGraphModelListener();this.installPageSelectListener();
+this.chatHistory=this.root.get("chatHistory");null==this.chatHistory&&this.initializeChat();this.installSelectionModelListener();this.installCollaboratorListener();this.updateCollaborators();this.doc.addEventListener(gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED,mxUtils.bind(this,function(a){this.documentSaveStateChanged(a,b)}));a=mxUtils.bind(this,function(){this.resetUpdateStatusThread();this.ui.resetScrollbars();this.updateStatus();b=!1});b?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+
+"..."),this.file.save(!1,a,a)):a();null==this.previousUndoListener&&(this.previousUndoListener=this.ui.editor.undoListener,this.ui.editor.undoListener=mxUtils.bind(this,function(a,b){this.ignoreChange||this.previousUndoListener.apply(this,arguments)}))};
 DriveRealtime.prototype.documentSaveStateChanged=function(a,b){!this.saving||a.isPending||a.isSaving||b||(this.ui.isLegacyDriveDomain()&&"1"!=urlParams.ignoremime&&this.ui.drive.verifyMimeType(this.file.getId()),this.file.isAutosave()?this.triggerAutosave():this.file.addAllSavedStatus(),this.saving=!1,this.connected=!0,this.resetUpdateStatusThread(),this.realtimeHeartbeat=DriveRealtime.prototype.realtimeHeartbeat,null!=this.isAliveThread&&(window.clearTimeout(this.isAliveThread),this.isAliveThread=
 null));if(this.file.isEditable()){var c=10485760-this.rtModel.bytesUsed;0<c&&5E5>c&&!this.sizeLimitWarningShown&&(this.sizeLimitWarningShown=!0,this.ui.showError(mxResources.get("warning"),mxResources.get("fileNearlyFullSeeFaq"),mxResources.get("close"),mxUtils.bind(this,function(){}),null,mxResources.get("show"),mxUtils.bind(this,function(){window.open("https://desk.draw.io/support/solutions/articles/16000041695")})))}};
 DriveRealtime.prototype.triggerAutosave=function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingPreview")));this.file.autosave(this.realtimeAutosaveDelay,this.realtimeMaxAutosaveDelay,mxUtils.bind(this,function(a){this.realtimeAutosaveDelay=this.defaultRealtimeAutosaveDelay+Math.min(1E4,this.file.saveDelay);this.ui.getCurrentFile()!=this.file||this.saving||this.file.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorUpdatingPreview")));
@@ -7952,11 +7957,11 @@ mxUtils.bind(this,function(a,b){if(!this.ignoreBackgroundImageChanged)try{this.s
 DriveRealtime.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};
 DriveRealtime.prototype.updateStatus=function(){if(!this.saving&&this.connected){var a=this.root.get("modifiedDate");""!=a&&(a=this.ui.timeSince(new Date(a)),null==a&&(a=mxResources.get("lessThanAMinute")),this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("lastChange",[a]))+"</span>"+(this.file.isEditable()?"":'<span class="geStatusAlert" style="margin-left:8px;">'+
 mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>")),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"),0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))}};DriveRealtime.prototype.getPageIndexForMap=function(a){for(var b=0;b<this.ui.pages.length;b++)if(this.ui.pages[b].mapping.diagramMap==a)return b;return null};
-DriveRealtime.prototype.installPageSelectListener=function(){this.pageChangeListener=mxUtils.bind(this,function(a,b){var c=b.getProperty("change").relatedPage;null==c.mapping&&(c.mapping=new RealtimeMapping(this,this.rtModel.createMap(),c),c.mapping.init(),this.file.isEditable()&&c.mapping.diagramMap.set("name",c.getName()))});this.ui.editor.addListener("beforePageChange",this.pageChangeListener);this.viewStateListener=mxUtils.bind(this,function(a,b){var c=this.getCurrentPage();null==c.viewState&&
-c.mapping.activate(!0)});this.ui.editor.addListener("setViewState",this.viewStateListener);this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a))if(null==a.movedFromList){this.ignoreChange=!0;null==this.ui.pages&&(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],null!=this.page&&(this.ui.currentPage=this.page,this.ui.pages.push(this.ui.currentPage),this.page=this.diagramMap=null));for(var b=
-0;b<a.values.length;b++){var c=new DiagramPage(document.createElement("diagram"));c.mapping=new RealtimeMapping(this,a.values[b],c);c.setName(c.mapping.diagramMap.get("name")||mxResources.get("pageWithNumber",[this.ui.pages.length+1]));this.ui.pages.splice(a.index+b,0,c);c.mapping.init()}null!=this.ui.pages&&1<this.ui.pages.length&&null!=this.ui.tabContainer&&"0px"==this.ui.tabContainer.style.height&&this.ui.editor.graph.view.validateBackground();this.ui.updateTabContainer();this.ignoreChange=!1}else if(a.movedFromList==
-this.diagrams&&null!=a.movedFromIndex){this.ignoreChange=!0;for(b=0;b<a.values.length;b++)c=this.getPageIndexForMap(a.values[b]),null!=c&&this.ui.movePage(c+b,a.index+b);this.ignoreChange=!1;this.ui.updateTabContainer()}}));this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_REMOVED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a)&&null==a.movedToList){this.ignoreChange=!0;for(var b=0;b<a.values.length;b++){var c=this.getPageIndexForMap(a.values[b]);null!=c&&(c=this.ui.pages[c],
-null!=c&&(this.ui.removePage(c),c.mapping.destroy()))}this.ignoreChange=!1}}))};
+DriveRealtime.prototype.installPageSelectListener=function(){this.pageChangeListener=mxUtils.bind(this,function(a,b){var c=b.getProperty("change").relatedPage;null==c.mapping&&(c.mapping=new RealtimeMapping(this,this.rtModel.createMap(),c),c.mapping.init(),this.file.isEditable()&&(c.mapping.diagramMap.set("name",c.getName()),c.mapping.diagramMap.set("id",c.getId())))});this.ui.editor.addListener("beforePageChange",this.pageChangeListener);this.viewStateListener=mxUtils.bind(this,function(a,b){var c=
+this.getCurrentPage();null==c.viewState&&c.mapping.activate(!0)});this.ui.editor.addListener("setViewState",this.viewStateListener);this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a))if(null==a.movedFromList){this.ignoreChange=!0;null==this.ui.pages&&(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],null!=this.page&&(this.ui.currentPage=this.page,this.ui.pages.push(this.ui.currentPage),
+this.page=this.diagramMap=null));for(var b=0;b<a.values.length;b++){var c=new DiagramPage(document.createElement("diagram"));c.mapping=new RealtimeMapping(this,a.values[b],c);c.setName(c.mapping.diagramMap.get("name")||mxResources.get("pageWithNumber",[this.ui.pages.length+1]));c.mapping.diagramMap.has("id")&&c.node.setAttribute("id",c.mapping.diagramMap.get("id"));this.ui.pages.splice(a.index+b,0,c);c.mapping.init()}null!=this.ui.pages&&1<this.ui.pages.length&&null!=this.ui.tabContainer&&"0px"==
+this.ui.tabContainer.style.height&&this.ui.editor.graph.view.validateBackground();this.ui.updateTabContainer();this.ignoreChange=!1}else if(a.movedFromList==this.diagrams&&null!=a.movedFromIndex){this.ignoreChange=!0;for(b=0;b<a.values.length;b++)c=this.getPageIndexForMap(a.values[b]),null!=c&&this.ui.movePage(c+b,a.index+b);this.ignoreChange=!1;this.ui.updateTabContainer()}}));this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_REMOVED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a)&&
+null==a.movedToList){this.ignoreChange=!0;for(var b=0;b<a.values.length;b++){var c=this.getPageIndexForMap(a.values[b]);null!=c&&(c=this.ui.pages[c],null!=c&&(this.ui.removePage(c),c.mapping.destroy()))}this.ignoreChange=!1}}))};
 DriveRealtime.prototype.processChange=function(a){if(a instanceof RenamePage)a.page.mapping.diagramMap.set("name",a.page.getName());else if(a instanceof ChangePage)null==a.previousIndex?this.diagrams.removeValue(a.relatedPage.mapping.diagramMap):this.diagrams.insert(a.previousIndex,a.relatedPage.mapping.diagramMap);else if(a instanceof MovePage)this.diagrams.move(a.newIndex,a.oldIndex+(a.newIndex<a.oldIndex?1:0));else if(a instanceof mxRootChange)a.root==this.model.root&&this.getCurrentPage().mapping.initRealtime();
 else if(a instanceof mxChildChange){if(a.parent!=a.previous||a.index!=a.previousIndex){var b=a.child.rtCell;null==b&&(b=this.getCurrentPage().mapping.createRealtimeCell(a.child),this.getCurrentPage().mapping.saveRealtimeCell(b.cell));var c=null!=a.parent?a.parent.rtCell:null;if(null!=a.previous){var d=a.previous.rtCell;null!=d&&d.children.removeValue(b)}null!=c&&c.children.insert(Math.min(c.children.length,a.index),b);b.parent=c}}else null!=a.cell&&null!=a.cell.id&&(b=a.cell.rtCell,null!=b&&(a instanceof
 mxTerminalChange?b[a.source?"source":"target"]=null!=a.terminal?a.terminal.rtCell:null:a instanceof mxGeometryChange?b.geometry=null!=a.geometry?mxUtils.getXml(this.codec.encode(a.geometry)):null:a instanceof mxStyleChange?b.style=a.style:a instanceof mxValueChange?mxUtils.isNode(a.value)?(b.value=null,b.xmlValue=mxUtils.getXml(a.value)):(b.xmlValue=null,b.value=a.value):a instanceof mxCollapseChange?b.collapsed=a.collapsed?"1":"0":a instanceof mxVisibleChange&&(b.visible=a.visible?"1":"0")))};
@@ -8023,7 +8028,7 @@ RealtimeMapping.prototype.installRealtimeCellListeners=function(a){a.addEventLis
 RealtimeMapping.prototype.handleValueChanged=function(a,b){var c=a.cell;if(!this.driveRealtime.isLocalEvent(b)&&null!=c){var d=b.newValue,e=b.property,g=this.beginUpdate();"type"==e?(c.vertex="vertex"==d,c.edge="edge"==d):"connectable"==e?c.connectable="1"==d:"source"==e||"target"==e?null==d?null!=b.oldValue&&g.setTerminal(c,null,"source"==e):null!=d.cell&&this.containsRealtimeCell(d)&&null!=g.getCell(d.cellId)?g.setTerminal(c,d.cell,"source"==e):(null!=a.parent&&(a.parent.children.removeValue(a),a.parent=
 null),g.setTerminal(c,null,"source"==e),g.remove(a.cell),a[e]=null):"value"==e?g.setValue(c,d):"xmlValue"==e?g.setValue(c,mxUtils.parseXml(d).documentElement):"style"==e?g.setStyle(c,d):"geometry"==e?(d=null!=d?this.driveRealtime.codec.decode(mxUtils.parseXml(d).documentElement):null,g.setGeometry(c,d)):"collapsed"==e?g.setCollapsed(c,"1"==d):"visible"==e?g.setVisible(c,"1"==d):"parent"==e&&(null!=b.oldValue?b.oldValue.children.removeValue(a):(this.createCell(a),this.restoreCell(a)),null==d?g.remove(c):
 (c=d.children.indexOf(a),0<=c&&g.add(d.cell,a.cell,c)))}};
-RealtimeMapping.prototype.handleValuesAdded=function(a,b){if(!this.driveRealtime.isLocalEvent(b))for(var c=this.beginUpdate(),d=0;d<b.values.length;d++){var e=b.values[d];if(null!=e.parent)if(e.parent!=a)a.children.removeValue(e);else{if(null==e.cell||null==e.cell.parent)this.createCell(e),this.restoreCell(e);for(var g=a.children.indexOf(e),l=a.children.lastIndexOf(e);g!=l;)a.children.remove(l),l=a.children.lastIndexOf(e);e.parent==a&&c.add(a.cell,e.cell,Math.min(g,b.index+d))}}};
+RealtimeMapping.prototype.handleValuesAdded=function(a,b){if(!this.driveRealtime.isLocalEvent(b))for(var c=this.beginUpdate(),d=0;d<b.values.length;d++){var e=b.values[d];if(null!=e.parent)if(e.parent!=a)a.children.removeValue(e);else{if(null==e.cell||null==e.cell.parent)this.createCell(e),this.restoreCell(e);for(var g=a.children.indexOf(e),k=a.children.lastIndexOf(e);g!=k;)a.children.remove(k),k=a.children.lastIndexOf(e);e.parent==a&&c.add(a.cell,e.cell,Math.min(g,b.index+d))}}};
 RealtimeMapping.prototype.handleValuesRemoved=function(a,b){if(!this.driveRealtime.isLocalEvent(b))for(var c=this.beginUpdate(),d=0;d<b.values.length;d++){var e=b.values[d];if(null!=e.cell)if(null!=e.parent&&e.parent!=a&&e.cell.parent!=e.parent.cell){var g=e.parent.children.indexOf(e);c.add(e.parent.cell,e.cell,g)}else g=a.children.indexOf(e),0<=g&&c.add(a.cell,e.cell,g)}};
 RealtimeMapping.prototype.realtimePageFormatChanged=function(a,b){if(null!=a){var c=a.split(",");1<c.length&&(this.isActive()?b?this.graph.pageFormat=new mxRectangle(0,0,parseInt(c[0]),parseInt(c[1])):(this.driveRealtime.ignorePageFormatChanged=!0,this.ui.setPageFormat(new mxRectangle(0,0,parseInt(c[0]),parseInt(c[1]))),this.driveRealtime.ignorePageFormatChanged=!1):null!=this.page.viewState&&(this.page.viewState.pageFormat=new mxRectangle(0,0,parseInt(c[0]),parseInt(c[1]))))}};
 RealtimeMapping.prototype.realtimePageScaleChanged=function(a,b){null!=a&&(this.isActive()?b?this.graph.pageScale=parseFloat(a):(this.driveRealtime.ignorePageScaleChanged=!0,this.ui.setPageScale(parseFloat(a)),this.driveRealtime.ignorePageScaleChanged=!1):null!=this.page.viewState&&(this.page.viewState.pageScale=parseFloat(a)))};
@@ -8033,17 +8038,30 @@ RealtimeMapping.prototype.realtimePageVisibleChanged=function(a,b){this.isActive
 RealtimeMapping.prototype.realtimeShadowVisibleChanged=function(a,b){this.isActive()?(this.driveRealtime.ignoreShadowVisibleChanged=!0,this.ui.editor.graph.setShadowVisible("1"==a),this.driveRealtime.ignoreShadowVisibleChanged=!1):null!=this.page.viewState&&(this.page.viewState.shadowVisible="1"==a)};
 RealtimeMapping.prototype.realtimeBackgroundImageChanged=function(a,b){var c=null!=a&&0<a.length?JSON.parse(a):null;this.isActive()?b?this.graph.setBackgroundImage(null!=c?new mxImage(c.src,c.width,c.height):null):(this.driveRealtime.ignoreBackgroundImageChanged=!0,this.ui.setBackgroundImage(null!=c?new mxImage(c.src,c.width,c.height):null),this.driveRealtime.ignoreBackgroundImageChanged=!1):null!=this.page.viewState&&(this.page.viewState.backgroundImage=null!=c?new mxImage(c.src,c.width,c.height):
 null)};RealtimeMapping.prototype.realtimeMathEnabledChanged=function(a,b){this.isActive()?b?this.graph.mathEnabled="1"==urlParams.math||"1"==a:(this.driveRealtime.ignoreMathEnabledChanged=!0,this.ui.setMathEnabled("1"==urlParams.math||"1"==a),this.driveRealtime.ignoreMathEnabledChanged=!1):null!=this.page.viewState&&(this.page.viewState.mathEnabled="1"==urlParams.math||"1"==a)};
-RealtimeMapping.prototype.removeAllRealtimeCellListeners=function(a){if(null!=a){a.removeAllEventListeners();a.children.removeAllEventListeners();for(var b=0;b<a.children.length;b++)this.removeAllRealtimeCellListeners(a.children.get(b))}};RealtimeMapping.prototype.destroy=function(){this.diagramMap.removeAllEventListeners();this.selectionMap.removeAllEventListeners();this.removeAllRealtimeCellListeners(this.diagramMap.get(this.driveRealtime.rootKey))};DriveFile=function(a,b,c,d){DrawioFile.call(this,a,b);this.desc=c;null!=d&&null!=d.getModel()&&null!=d.getModel().getRoot()&&(this.realtime=new DriveRealtime(this,d))};mxUtils.extend(DriveFile,DrawioFile);DriveFile.prototype.isRestricted=function(){return null!=this.desc.userPermission&&null!=this.desc.labels&&"reader"==this.desc.userPermission.role&&this.desc.labels.restricted};DriveFile.prototype.saveDelay=0;DriveFile.prototype.getMode=function(){return App.MODE_GOOGLE};
-DriveFile.prototype.getPublicUrl=function(a){gapi.client.drive.permissions.list({fileId:this.desc.id}).execute(mxUtils.bind(this,function(b){if(null!=b&&null!=b.items)for(var c=0;c<b.items.length;c++)if("anyoneWithLink"===b.items[c].id||"anyone"===b.items[c].id){a(this.desc.webContentLink);return}a(null)}))};DriveFile.prototype.isAutosaveOptional=function(){return!0};DriveFile.prototype.isAutosave=function(){return this.ui.editor.autosave||this.isAutosaveRevision()};
-DriveFile.prototype.isAutosaveNow=function(){if(null!=this.realtime&&null!=this.realtime.root){var a=parseInt(this.realtime.root.get("backupDate")),b=parseInt(this.realtime.root.get("modifiedDate"));return isNaN(a)||isNaN(b)||a<b}return!0};DriveFile.prototype.autosaveCompleted=function(){null!=this.realtime&&null!=this.realtime.root&&this.realtime.root.set("backupDate",(new Date).getTime())};
-DriveFile.prototype.isRenamable=function(){return this.isEditable()&&DrawioFile.prototype.isEditable.apply(this,arguments)};DriveFile.prototype.isMovable=function(){return this.isEditable()};DriveFile.prototype.save=function(a,b,c,d){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(null,a,b,c,d)};
-DriveFile.prototype.saveFile=function(a,b,c,d,e){if(!this.isEditable())null!=c&&c();else if(!this.savingFile){this.savingFile=!0;var g=this.isModified,l=this.isModified();this.setModified(!1);this.ui.drive.saveFile(this,b,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=g;0!=a?(b&&(this.lastAutosaveRevision=(new Date).getTime()),this.desc=a,this.contentChanged(),null!=c&&c(a)):(this.setModified(l||this.isModified()),null!=d&&d())}),mxUtils.bind(this,function(a){this.savingFile=!1;
-this.isModified=g;this.setModified(l||this.isModified());null!=d&&d(a)}),e,e)}};DriveFile.prototype.saveAs=function(a,b,c){this.ui.drive.copyFile(this.getId(),a,b,c)};DriveFile.prototype.rename=function(a,b,c){this.ui.drive.renameFile(this.getId(),a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.desc=d,this.descriptorChanged(),null!=b&&b(d)):(this.desc=d,this.save(!0,b,c))}),c)};
-DriveFile.prototype.move=function(a,b,c){this.ui.drive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.desc=a;this.descriptorChanged();null!=b&&b(a)}),c)};DriveFile.prototype.getTitle=function(){return this.desc.title};DriveFile.prototype.getHash=function(){return"G"+this.getId()};DriveFile.prototype.getId=function(){return this.desc.id};
-DriveFile.prototype.isEditable=function(){var a=DrawioFile.prototype.isEditable.apply(this,arguments);return null!=this.realtime?a&&!this.realtime.rtModel.isReadOnly:a&&this.desc.editable};DriveFile.prototype.open=function(){null!=this.realtime?this.realtime.start():DrawioFile.prototype.open.apply(this,arguments)};DriveFile.prototype.close=function(a){a=null!=a?a:!1;DrawioFile.prototype.close.apply(this,arguments);null!=this.realtime&&(this.realtime.destroy(a),this.realtime=null)};DriveLibrary=function(a,b,c){DriveFile.call(this,a,b);this.desc=c};mxUtils.extend(DriveLibrary,DriveFile);DriveLibrary.prototype.isAutosave=function(){return!0};DriveLibrary.prototype.save=function(a,b,c){this.ui.drive.saveFile(this,a,mxUtils.bind(this,function(a){this.desc=a;null!=b&&b(a)}),c)};DriveLibrary.prototype.open=function(){};DriveClient=function(a){mxEventSource.call(this);this.ui=a;this.ui.editor.isChromelessView()&&"1"!=urlParams.rt?(this.appId="850530949725",this.clientId="850530949725.apps.googleusercontent.com",this.scopes=["https://www.googleapis.com/auth/drive.readonly","openid"],this.mimeType="all_types_supported"):this.ui.isDriveDomain()?(this.appId="671128082532",this.clientId="671128082532.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.realtime"):(this.appId="420247213240",this.clientId=
-"420247213240-hnbju1pt13seqrc1hhd5htpotk4g9q7u.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.rtlegacy");this.mimeTypes="application/mxe,application/vnd.jgraph.mxfile,application/mxr,application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy"};mxUtils.extend(DriveClient,mxEventSource);
-DriveClient.prototype.scopes="1"==urlParams.photos?["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/photos","https://www.googleapis.com/auth/photos.upload","https://www.googleapis.com/auth/userinfo.profile"]:["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/userinfo.profile"];DriveClient.prototype.enableThumbnails=!0;
-DriveClient.prototype.thumbnailWidth=1E3;DriveClient.prototype.maxThumbnailSize=2E6;
+RealtimeMapping.prototype.removeAllRealtimeCellListeners=function(a){if(null!=a){a.removeAllEventListeners();a.children.removeAllEventListeners();for(var b=0;b<a.children.length;b++)this.removeAllRealtimeCellListeners(a.children.get(b))}};RealtimeMapping.prototype.destroy=function(){this.diagramMap.removeAllEventListeners();this.selectionMap.removeAllEventListeners();this.removeAllRealtimeCellListeners(this.diagramMap.get(this.driveRealtime.rootKey))};DriveFile=function(a,b,c,d){DrawioFile.call(this,a,b);this.desc=c;null!=d&&null!=d.getModel()&&null!=d.getModel().getRoot()&&(this.realtime=new DriveRealtime(this,d))};mxUtils.extend(DriveFile,DrawioFile);DriveFile.prototype.saveDelay=0;DriveFile.prototype.isRestricted=function(){return null!=this.desc.userPermission&&null!=this.desc.labels&&"reader"==this.desc.userPermission.role&&this.desc.labels.restricted};DriveFile.prototype.isConflict=function(a){return null!=a&&null!=a.error&&412==a.error.code};
+DriveFile.prototype.getMode=function(){return App.MODE_GOOGLE};DriveFile.prototype.getPublicUrl=function(a){gapi.client.drive.permissions.list({fileId:this.desc.id}).execute(mxUtils.bind(this,function(b){if(null!=b&&null!=b.items)for(var c=0;c<b.items.length;c++)if("anyoneWithLink"===b.items[c].id||"anyone"===b.items[c].id){a(this.desc.webContentLink);return}a(null)}))};DriveFile.prototype.isAutosaveOptional=function(){return!0};
+DriveFile.prototype.isAutosave=function(){return this.ui.editor.autosave||null!=this.realtime&&this.isAutosaveRevision()};DriveFile.prototype.isAutosaveNow=function(){if(null!=this.realtime&&null!=this.realtime.root){var a=parseInt(this.realtime.root.get("backupDate")),b=parseInt(this.realtime.root.get("modifiedDate"));return isNaN(a)||isNaN(b)||a<b}return!0};DriveFile.prototype.autosaveCompleted=function(){null!=this.realtime&&null!=this.realtime.root&&this.realtime.root.set("backupDate",(new Date).getTime())};
+DriveFile.prototype.isRenamable=function(){return this.isEditable()&&DrawioFile.prototype.isEditable.apply(this,arguments)};DriveFile.prototype.isMovable=function(){return this.isEditable()};DriveFile.prototype.save=function(a,b,c,d,e){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(null,a,b,c,d,e)};
+DriveFile.prototype.saveFile=function(a,b,c,d,e,g){if(!this.isEditable())null!=c&&c();else if(!this.savingFile){var k=this.isModified,l=this.isModified();this.setModified(!1);this.isModified=function(){return!0};var m=mxUtils.bind(this,function(a,g){this.savingFile=!0;this.ui.drive.saveFile(this,g,mxUtils.bind(this,function(a){this.isModified=k;this.savingFile=!1;0!=a?(b&&(this.lastAutosaveRevision=(new Date).getTime()),this.desc=a,this.contentChanged(),null!=c&&c(a)):(this.setModified(l||this.isModified()),
+null!=d&&d(a))}),mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){this.setModified(l||this.isModified());this.isModified=k;this.savingFile=!1;null!=d&&d(a)});this.isConflict(a)?this.showConflictDialog(function(){m(!0,!0)},function(){a=null;b()}):b()}),e,e,a)});m(g,b)}};
+DriveFile.prototype.makeCopy=function(a,b,c){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.saveAs(this.ui.getCopyFilename(this,c),mxUtils.bind(this,function(b){this.ui.spinner.stop();this.desc=b;a();this.setModified(!1)}),mxUtils.bind(this,function(){this.ui.spinner.stop();null!=b&&b()}))};DriveFile.prototype.saveAs=function(a,b,c){this.ui.drive.copyFile(this.getId(),a,b,c)};
+DriveFile.prototype.rename=function(a,b,c){this.ui.drive.renameFile(this.getId(),a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.desc=d,this.descriptorChanged(),null!=b&&b(d)):(this.desc=d,this.save(!0,b,c))}),c)};DriveFile.prototype.move=function(a,b,c){this.ui.drive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.desc=a;this.descriptorChanged();null!=b&&b(a)}),c)};DriveFile.prototype.getTitle=function(){return this.desc.title};
+DriveFile.prototype.getHash=function(){return"G"+this.getId()};DriveFile.prototype.getId=function(){return this.desc.id};DriveFile.prototype.isEditable=function(){var a=DrawioFile.prototype.isEditable.apply(this,arguments);return null!=this.realtime?a&&!this.realtime.rtModel.isReadOnly:a&&this.desc.editable};DriveFile.prototype.open=function(){null!=this.realtime?this.realtime.start():DrawioFile.prototype.open.apply(this,arguments)};
+DriveFile.prototype.close=function(a){a=null!=a?a:!1;DrawioFile.prototype.close.apply(this,arguments);null!=this.realtime&&(this.realtime.destroy(a),this.realtime=null)};
+DriveFile.prototype.showConflictDialog=function(a,b){if(!this.showingConflictDialog){var c=null!=this.ui.spinner&&null!=this.ui.spinner.pause?this.ui.spinner.pause():function(){},d=this.changeListenerEnabled;this.changeListenerEnabled=!1;this.showingConflictDialog=!0;this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwrite"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.showingConflictDialog=!1;this.changeListenerEnabled=d;this.makeCopy(a,b,!0)}),
+null,mxResources.get("overwrite"),mxUtils.bind(this,function(){this.showingConflictDialog=!1;this.changeListenerEnabled=d;c();a()}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.showingConflictDialog=!1;this.changeListenerEnabled=d;this.ui.hideDialog();c();b()}),360,180);if(null!=this.ui.dialog&&null!=this.ui.dialog.container){var e=document.createElement("a");e.className="geStatusAlert";e.style.display="block";e.style.position="absolute";e.style.cursor="pointer";e.style.bottom="0";
+e.style.padding="8px 0 8px 0";e.style.marginBottom="26px";e.style.left="0";e.style.right="0";e.style.textAlign="center";e.style.borderRadius="0";e.style.borderLeftStyle="none";e.style.borderRightStyle="none";e.style.textDecoration="none";e.style.fontWeight="bold";e.setAttribute("href","https://desk.draw.io/support/solutions/articles/16000087215");e.setAttribute("target","_blank");mxUtils.write(e,mxResources.get("collaborativeEditingNotice"));this.ui.dialog.container.appendChild(e)}}};
+DriveFile.prototype.checkConvert=function(){var a=mxUtils.bind(this,function(a){try{this.ui.getCurrentFile()!=this||this.isModified()||this.ui.drive.getXmlFile(this.desc,null,mxUtils.bind(this,function(b){try{var c=b.getData(),e=null!=c?mxUtils.parseXml(c).documentElement:null;if(null!=e){var g=this.ui.editor.extractGraphModel(e,!0);null!=g&&(e=g)}null!=this.runCheck&&this.runCheck(a,e,c)}catch(k){this.log("CATCH-PARSEFILE-"+k.stack),this.runCheck(a,null,"CATCH-PARSEFILE-"+k.stack)}}),mxUtils.bind(this,
+function(b){this.log("ERROR-GETFILE");this.runCheck(a,null,"ERROR-GETFILE")}),!0)}catch(c){this.log("CATCH-GETFILE-"+c.stack),this.runCheck(a,null,"CATCH-GETFILE-"+c.stack)}});try{this.ui.drive.getRealtimeData(this.desc.id,a,a)}catch(b){this.log("CATCH-GETJSON-"+b.stack,!0)}};
+DriveFile.prototype.getComparableFile=function(a){for(;0<a.attributes.length;)a.removeAttribute(a.attributes[0].name);for(var b=a.getElementsByTagName("diagram"),c=0;c<b.length;c++){b[c].removeAttribute("name");b[c].removeAttribute("id");var d=this.ui.editor.graph.decompress(mxUtils.getTextContent(b[c]));if(null!=d&&0<d.length){for(;null!=b[c].firstChild;)b[c].removeChild(b[c].firstChild);b[c].appendChild(mxUtils.parseXml(d).documentElement)}}b=a.getElementsByTagName("mxGraphModel");for(c=0;c<b.length;c++)for(;0<
+b[c].attributes.length;)b[c].removeAttribute(b[c].attributes[0].name);return a};DriveFile.prototype.getAnonymizedXml=function(a){if(null!=a){for(var b=a.getElementsByTagName("mxCell"),c=0;c<b.length;c++)b[c].removeAttribute("style"),b[c].removeAttribute("value"),null!=b[c].parentNode&&"UserObject"==b[c].parentNode.nodeName&&null!=b[c].parentNode.parentNode&&b[c].parentNode.parentNode.replaceChild(b[c],b[c].parentNode);return mxUtils.getPrettyXml(a)}return"null"};
+DriveFile.prototype.getAnonymizedJson=function(a){if(null!=a){for(var b=a.value.diagrams.value,c=0;c<b.length;c++)null!=b[c].value&&null!=b[c].value.root&&this.anonymizeJsonCell(b[c].value.root.value);return JSON.stringify(a)}return"null"};DriveFile.prototype.anonymizeJsonCell=function(a){if(null!=a&&(delete a.xmlValue,delete a.value,delete a.style,null!=a.children&&null!=a.children.value))for(var b=0;b<a.children.value.length;b++)this.anonymizeJsonCell(a.children.value[b].value)};
+DriveFile.prototype.debug=function(){null!=window.console&&"1"==urlParams.test&&console.log.apply(console,arguments)};
+DriveFile.prototype.log=function(a,b){this.debug(a);try{this.ui.logEvent({category:this.ui.JSON_CHECK,action:a,label:this.desc.id}),b&&this.report("Realtime Log Report "+new Date+"\n\nDescription: "+JSON.stringify({version:this.ui.JSON_CHECK,title:this.desc.title,editable:this.desc.editable,copyable:this.desc.copyable,labels:this.desc.labels,id:this.desc.id,userPermission:this.desc.userPermission,fileSize:this.desc.fileSize,fileExtension:this.desc.fileExtension,modifiedDate:this.desc.modifiedDate,
+mimeType:this.desc.mimeType})+"\n\nMessage:\n"+a)}catch(c){}};DriveFile.prototype.report=function(a){try{3E6<a.length&&(a=a.substring(0,3E6)+"\n...[REPORT SHORTENED]"),this.debug(a),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a),mxUtils.bind(this,function(a){this.debug("report sent")}),mxUtils.bind(this,function(){this.debug("report failed")}))}catch(b){}};DriveLibrary=function(a,b,c){DriveFile.call(this,a,b);this.desc=c};mxUtils.extend(DriveLibrary,DriveFile);DriveLibrary.prototype.isAutosave=function(){return!0};DriveLibrary.prototype.save=function(a,b,c){this.ui.drive.saveFile(this,a,mxUtils.bind(this,function(a){this.desc=a;null!=b&&b(a)}),c)};DriveLibrary.prototype.open=function(){};DriveClient=function(a){mxEventSource.call(this);this.ui=a;this.xmlMimeType="application/vnd.jgraph.mxfile";this.ui.editor.isChromelessView()&&"1"!=urlParams.rt?(this.appId="850530949725",this.clientId="850530949725.apps.googleusercontent.com",this.scopes=["https://www.googleapis.com/auth/drive.readonly","openid"],this.mimeType="all_types_supported"):this.ui.isDriveDomain()?(this.appId="671128082532",this.clientId="671128082532.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.realtime"):
+(this.appId="420247213240",this.clientId="420247213240-hnbju1pt13seqrc1hhd5htpotk4g9q7u.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.rtlegacy");this.mimeTypes=this.xmlMimeType+"application/mxe,application/mxr,application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy"};mxUtils.extend(DriveClient,mxEventSource);
+DriveClient.prototype.scopes="1"==urlParams.photos?["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/photos","https://www.googleapis.com/auth/photos.upload","https://www.googleapis.com/auth/userinfo.profile"]:["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/userinfo.profile"];DriveClient.prototype.allFields="kind,id,parents,headRevisionId,etag,title,mimeType,modifiedDate,editable,copyable,labels,properties,downloadUrl,webContentLink,userPermission";
+DriveClient.prototype.enableThumbnails=!0;DriveClient.prototype.thumbnailWidth=1E3;DriveClient.prototype.maxThumbnailSize=2E6;
 DriveClient.prototype.placeholderThumbnail="iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAACN1BMVEXwhwXvhgX4iwXzhwXgbQzvhgXhbAzocgzqcwzldAoAAADhbgvjcQnmdgrlbgDwhgXsfwXufgjwhgXwgQfziAXxgADibgz4iwX4jAX3iwTpcwr1igXoewjsfgj3igX4iwXqcQv4jAX3iwXtfQnndQrvhAbibArwhwXgbQz//////v39jwX6jQX+/v7fagHfawzdVQDwhADgbhPgbhXwhwPocQ3uvKvwiA/faQDscgzxiAT97+XgciTgcSP6jAXgbQ3gcCHwiRfpcQzwhwfeXQD77ef74NLvhgTvegD66uPgbAf66+TvfADwjCzgcCfwiSD67ObhcjjwiBHhczvwiyrgbxj///777ujgcSHgcB/xiRzgbhveWgDeVwDhdEDgbRDqfgffYgDfXwD97+bvfQDxiz7//vvwiRr118rrcgztggbfZgDfZAD++PT98+3gbBPsgAb99vD33tPgcB7icAvuhAX//Pn66N/00sTyy7vuuqbjekLwhwzkcgr88er449n++vfutp/kh1vgcBvhbwvmdwnwgwDwgADeWQD87eLxxrTssJjqpIf0roHmjWTkhFP759n63czvvanomnjnlHDhczD22cr4y6/wwa/3xKX2wJ3rqpH0tY7qp4vpnoDymlbjf0vxjjntcwzldAroegj/kgX12s7518PzqnnnkWfynmLieUjpewjrdAD40Lj1uZTzpm3idTbiciLydQzzfwnyiQTsfgD3xqnzp3TxlkzgbCrdTwDdSwBLKUlNAAAAJ3RSTlP8/b2X/YH8wb+FAIuIggJbQin5opAM9+a/ubaubyD78NjSyr2WgRp4sjN4AAAI70lEQVR42u2cZ38SQRDGT8WGvfde4E4BxVMRRaKiUURRlJhQRDCCSgQVO/bee++9994+nMt5ywoezFJd/fm8uITi3p9n5mbYkcCpO6rVnVu2YEXd+3dRIySuo7pLv4GjGNKg7j3UHTl1l14PajmG9OFBnx7Ird4PumpYEtf1QXc112l0M7OGKXEfeg3guo3iNIyJG92Jaz61mYYxcaNacs1H/8f6j6X5j1WI/mMVIsawRFEzI49SjwOqAJa43emclk8Rp2c7AFZ+LDGyvXE2kmO2Q1Lq17RSd6ND48QIwFVuLNHTOPbEpTOz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".replace(/\+/g,"-").replace(/\//g,
 "_");DriveClient.prototype.placeholderMimeType="image/png";DriveClient.prototype.libraryMimeType="application/vnd.jgraph.mxlibrary";DriveClient.prototype.newAppHostname="www.draw.io";DriveClient.prototype.oldAppHostname="legacy.draw.io";DriveClient.prototype.extension=".html";DriveClient.prototype.tokenRefreshInterval=0;DriveClient.prototype.lastTokenRefresh=0;DriveClient.prototype.maxRetries=4;DriveClient.prototype.mimeTypeCheckCoolOff=6E4;DriveClient.prototype.user=null;
 DriveClient.prototype.setUser=function(a){this.user=a;null==this.user&&null!=this.tokenRefreshThread&&(window.clearTimeout(this.tokenRefreshThread),this.tokenRefreshThread=null);this.fireEvent(new mxEventObject("userChanged"))};DriveClient.prototype.getUser=function(){return this.user};
@@ -8051,35 +8069,40 @@ DriveClient.prototype.setUserId=function(a,b){if(b)if(isLocalStorage)localStorag
 DriveClient.prototype.getUserId=function(){var a=null;null!=this.user&&(a=this.user.id);null==a&&isLocalStorage&&(a=localStorage.getItem(".guid"));if(null==a&&"undefined"!=typeof Storage){for(var b=document.cookie.split(";"),c=0;c<b.length;c++){var d=mxUtils.trim(b[c]);if("GUID="==d.substring(0,5)){a=d.substring(5);break}}null!=a&&isLocalStorage&&(b=new Date,b.setYear(b.getFullYear()-1),document.cookie="GUID=; expires="+b.toUTCString(),localStorage.setItem(".guid",a))}return a};
 DriveClient.prototype.execute=function(a){var b=mxUtils.bind(this,function(b){this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(b,c){this.authorize(!1,mxUtils.bind(this,function(){null!=c&&c();a()}),mxUtils.bind(this,function(a){var b=mxResources.get("cannotLogin");null!=a&&null!=a.error&&403==a.error.code&&null!=a.error.data&&0<a.error.data.length&&"domainPolicy"==a.error.data[0].reason&&(b=a.error.message);this.ui.drive.clearUserId();this.ui.drive.setUser(null);gapi.auth.signOut();this.ui.showError(mxResources.get("error"),
 b,mxResources.get("help"),mxUtils.bind(this,function(){this.ui.openLink("https://desk.draw.io/support/solutions/articles/16000074659")}),null,mxResources.get("ok"))}),b)}))});this.authorize(!0,a,b)};
-DriveClient.prototype.executeRequest=function(a,b,c){var d=!0,e=null,g=0;null!=this.requestThread&&window.clearTimeout(this.requestThread);var l=mxUtils.bind(this,function(){this.requestThread=null;this.currentRequest=a;null!=e&&window.clearTimeout(e);e=window.setTimeout(mxUtils.bind(this,function(){d=!1;null!=c&&c({code:App.ERROR_TIMEOUT,retry:l})}),this.ui.timeout);a.execute(mxUtils.bind(this,function(m){window.clearTimeout(e);d&&(null!=m&&null==m.error?null!=b&&b(m):null!=c&&null!=m&&null!=m.error&&
-403==m.error.code&&("The requested mime type change is forbidden."==m.error.message||null!=m.error.data&&"domainPolicy"==m.error.data[0].reason)?c(m):null==m||null==m.error||401!=m.error.code&&403!=m.error.code?null!=m&&null!=m.error&&404!=m.error.code&&this.currentRequest==a&&g<this.maxRetries?(g++,this.requestThread=window.setTimeout(l,Math.round(Math.pow(2,g)*(1+.1*(Math.random()-.5))*1E3))):null!=c&&c(m):403==m.error.code&&null!=this.user?null!=c&&c(m):this.execute(l))}))});null==gapi.auth.getToken()?
-this.execute(l):l()};DriveClient.prototype.authorize=function(a,b,c,d){var e=this.getUserId();null!=this.ui.stateArg&&null!=this.ui.stateArg.userId&&(e=this.ui.stateArg.userId);if(a&&null==e)null!=c&&c();else{var g={scope:this.scopes,client_id:this.clientId};a&&null!=e?(g.immediate=!0,g.user_id=e):(g.immediate=!1,g.authuser=-1);gapi.auth.authorize(g,mxUtils.bind(this,function(g){null!=g&&null==g.error?null!=this.user&&a&&this.user.id==e?null!=b&&b():this.updateUser(b,c,d):null!=c&&c(g);this.resetTokenRefresh(g)}))}};
+DriveClient.prototype.executeRequest=function(a,b,c){var d=!0,e=null,g=0;null!=this.requestThread&&window.clearTimeout(this.requestThread);var k=mxUtils.bind(this,function(){this.requestThread=null;this.currentRequest=a;null!=e&&window.clearTimeout(e);e=window.setTimeout(mxUtils.bind(this,function(){d=!1;null!=c&&c({code:App.ERROR_TIMEOUT,retry:k})}),this.ui.timeout);a.execute(mxUtils.bind(this,function(l){window.clearTimeout(e);d&&(null!=l&&null==l.error?null!=b&&b(l):null!=c&&null!=l&&null!=l.error&&
+403==l.error.code&&("The requested mime type change is forbidden."==l.error.message||null!=l.error.data&&"domainPolicy"==l.error.data[0].reason)?c(l):null==l||null==l.error||401!=l.error.code&&403!=l.error.code?null!=l&&null!=l.error&&412!=l.error.code&&404!=l.error.code&&this.currentRequest==a&&g<this.maxRetries?(g++,this.requestThread=window.setTimeout(k,Math.round(Math.pow(2,g)*(1+.1*(Math.random()-.5))*1E3))):null!=c&&c(l):403==l.error.code&&null!=this.user?null!=c&&c(l):this.execute(k))}))});
+null==gapi.auth.getToken()?this.execute(k):k()};
+DriveClient.prototype.authorize=function(a,b,c,d){var e=this.getUserId();null!=this.ui.stateArg&&null!=this.ui.stateArg.userId&&(e=this.ui.stateArg.userId);if(a&&null==e)null!=c&&c();else{var g={scope:this.scopes,client_id:this.clientId};a&&null!=e?(g.immediate=!0,g.user_id=e):(g.immediate=!1,g.authuser=-1);gapi.auth.authorize(g,mxUtils.bind(this,function(g){null!=g&&null==g.error?null!=this.user&&a&&this.user.id==e?null!=b&&b():this.updateUser(b,c,d):null!=c&&c(g);this.resetTokenRefresh(g)}))}};
 DriveClient.prototype.resetTokenRefresh=function(a){null!=this.tokenRefreshThread&&(window.clearTimeout(this.tokenRefreshThread),this.tokenRefreshThread=null);null!=a&&null==a.error&&0<a.expires_in&&(this.tokenRefreshInterval=1E3*parseInt(a.expires_in),this.lastTokenRefresh=(new Date).getTime(),this.tokenRefreshThread=window.setTimeout(mxUtils.bind(this,function(){this.authorize(!0,mxUtils.bind(this,function(){}),mxUtils.bind(this,function(){}))}),900*a.expires_in))};
 DriveClient.prototype.checkToken=function(a){var b=0<this.lastTokenRefresh;(new Date).getTime()-this.lastTokenRefresh>this.tokenRefreshInterval||null==this.tokenRefreshThread?this.execute(mxUtils.bind(this,function(){a();b&&this.fireEvent(new mxEventObject("disconnected"))})):a()};
 DriveClient.prototype.updateUser=function(a,b,c){var d=gapi.auth.getToken().access_token;this.ui.loadUrl("https://www.googleapis.com/oauth2/v2/userinfo?alt=json&access_token="+d,mxUtils.bind(this,function(d){var e=JSON.parse(d);this.executeRequest(gapi.client.drive.about.get(),mxUtils.bind(this,function(b){this.setUser(new DrawioUser(e.id,b.user.emailAddress,b.user.displayName,null!=b.user.picture?b.user.picture.url:null,e.locale));this.setUserId(e.id,c);null!=a&&a()}),b)}),b)};
-DriveClient.prototype.copyFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(gapi.client.drive.files.copy({fileId:a,resource:{title:b},supportsTeamDrives:!0}),c,d)};DriveClient.prototype.renameFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{title:b}),c,d)};DriveClient.prototype.moveFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{parents:[{kind:"drive#fileLink",id:b}]}),c,d)};
+DriveClient.prototype.copyFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(gapi.client.drive.files.copy({fileId:a,fields:this.allFields,supportsTeamDrives:!0,resource:{title:b}}),c,d)};DriveClient.prototype.renameFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{title:b}),c,d)};DriveClient.prototype.moveFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{parents:[{kind:"drive#fileLink",id:b}]}),c,d)};
 DriveClient.prototype.createDriveRequest=function(a,b){return gapi.client.request({path:"/drive/v2/files/"+a,method:"PUT",params:{uploadType:"multipart",supportsTeamDrives:!0},headers:{"Content-Type":"application/json; charset=UTF-8"},body:JSON.stringify(b)})};DriveClient.prototype.getLibrary=function(a,b,c){return this.getFile(a,b,c,!0,!0)};
-DriveClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;e=null!=e?e:!1;null!=urlParams.rev?this.executeRequest(gapi.client.drive.revisions.get({fileId:a,revisionId:urlParams.rev}),mxUtils.bind(this,function(a){this.getXmlFile(a,null,b,c)}),c):this.executeRequest(gapi.client.drive.files.get({fileId:a,supportsTeamDrives:!0}),mxUtils.bind(this,function(a){if(null!=this.user){var g=/\.png$/i.test(a.title);/\.v(dx|sdx?)$/i.test(a.title)||/\.gliffy$/i.test(a.title)||!this.ui.useCanvasForExport&&
-g?(g=a.downloadUrl+"&access_token="+gapi.auth.getToken().access_token,this.ui.convertFile(g,a.title,a.mimeType,this.extension,b,c)):d||e||a.mimeType==this.libraryMimeType?this.getXmlFile(a,null,b,c,!0,e):this.loadRealtime(a,mxUtils.bind(this,function(d){try{null==d||null==d.getModel()||null==d.getModel().getRoot()||d.getModel().getRoot().isEmpty()||d.getModel().getRoot().has("cells")&&!d.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey)?this.getXmlFile(a,d,b,c):b(new DriveFile(this.ui,
-null,a,d))}catch(n){c(n)}}),c)}else c({message:mxResources.get("loggedOut")})}),c)};
-DriveClient.prototype.loadRealtime=function(a,b,c){if("1"==urlParams.ignoremime||"420247213240"!=this.appId||"application/vnd.jgraph.mxfile.realtime"!=a.mimeType&&"application/mxr"!=a.mimeType)if("850530949725"!=this.appId&&(a.editable||"application/mxe"!=a.mimeType&&"application/vnd.jgraph.mxfile"!=a.mimeType)){var d=mxUtils.bind(this,function(){var e=!0,g=window.setTimeout(mxUtils.bind(this,function(){e=!1;c({code:App.ERROR_TIMEOUT,retry:d})}),this.ui.timeout);gapi.drive.realtime.load(a.id,mxUtils.bind(this,
-function(a){window.clearTimeout(g);e&&b(a)}))});d()}else b();else this.redirectToNewApp(c,a.id)};
-DriveClient.prototype.getXmlFile=function(a,b,c,d,e,g){var l=gapi.auth.getToken().access_token;this.ui.loadUrl(a.downloadUrl+"&access_token="+l,mxUtils.bind(this,function(l){if(null==l)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||g)a.mimeType!=this.libraryMimeType||g?c(new DriveLibrary(this.ui,l,a)):d({message:mxResources.get("notADiagramFile")});else{if(/\.png$/i.test(a.title)){var m=l.lastIndexOf(",");0<m&&(m=this.ui.extractGraphModelFromPng(l.substring(m+
-1)),null!=m&&0<m.length&&(l=m))}var f=new DriveFile(this.ui,l,a,b);!e&&"850530949725"!=this.appId&&f.isEditable()&&a.mimeType!=this.mimeType?this.saveFile(f,!0,mxUtils.bind(this,function(a){f.desc=a;c(f)}),d,!0):c(f)}}),d,"image/"==a.mimeType.substring(0,6)&&"image/svg"!=a.mimeType.substring(0,9)||/\.png$/i.test(a.title)||/\.jpe?g$/i.test(a.title))};
-DriveClient.prototype.saveFile=function(a,b,c,d,e,g){if(a.isEditable()){var l=(new Date).getTime();e=null!=e?e:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;g=null!=g?g:!1;var m=mxUtils.bind(this,function(e,h,k){var f={mimeType:a.constructor==DriveLibrary?this.libraryMimeType:this.mimeType,title:a.getTitle()};k||(null!=e||g||(e=this.placeholderThumbnail,h=this.placeholderMimeType),null!=e&&null!=h&&(f.thumbnail={image:e,mimeType:h}));var m=function(){a.saveDelay=(new Date).getTime()-l;
-c.apply(this,arguments)},n=mxUtils.bind(this,function(c,e){this.executeRequest(this.createUploadRequest(a.getId(),f,c,b||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,e),m,d)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){n(a,!0)}),d,this.ui.getCurrentFile()!=a?a.getData():null):n(a.getData(),!1)}),n=mxUtils.bind(this,function(){!g&&a.constructor!=DriveLibrary&&this.enableThumbnails&&"0"!=urlParams.thumb&&(null==
-a.realtime||a.realtime.connected)&&this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(k){}b=null==b||b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");m(b,"image/png")}))||m(null,null,a.constructor!=DriveLibrary&&(null==a.realtime||a.realtime.connected))});e||!b?n():this.verifyMimeType(a.getId(),n,!0)}else this.ui.editor.graph.reset(),null!=d&&d({message:mxResources.get("readOnly")})};
+DriveClient.prototype.loadDescriptor=function(a,b,c){this.executeRequest(gapi.client.drive.files.get({fileId:a,fields:this.allFields,supportsTeamDrives:!0}),b,c)};DriveClient.prototype.getChannelId=function(a){a=a.properties;var b=null;if(null!=a)for(var c=0;c<a.length;c++)if("channel"==a[c].key){b=a[c].value;break}return b};
+DriveClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;e=null!=e?e:!1;null!=urlParams.rev?this.executeRequest(gapi.client.drive.revisions.get({fileId:a,revisionId:urlParams.rev,supportsTeamDrives:!0}),mxUtils.bind(this,function(a){this.getXmlFile(a,null,b,c)}),c):this.loadDescriptor(a,mxUtils.bind(this,function(a){if(null!=this.user){var g=/\.png$/i.test(a.title);/\.v(dx|sdx?)$/i.test(a.title)||/\.gliffy$/i.test(a.title)||!this.ui.useCanvasForExport&&g?(g=a.downloadUrl+"&access_token="+
+gapi.auth.getToken().access_token,this.ui.convertFile(g,a.title,a.mimeType,this.extension,b,c)):d||e||a.mimeType==this.libraryMimeType||a.mimeType==this.xmlMimeType?this.getXmlFile(a,null,b,c,!0,e):App.GOOGLE_REALTIME?this.loadRealtime(a,mxUtils.bind(this,function(d){try{null==d||null==d.getModel()||null==d.getModel().getRoot()||d.getModel().getRoot().isEmpty()||d.getModel().getRoot().has("cells")&&!d.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey)?this.getXmlFile(a,d,b,c):b(new DriveFile(this.ui,
+null,a,d))}catch(m){c(m)}}),c):this.isGoogleRealtimeMimeType(a.mimeType)?this.convertRealtimeFile(a,mxUtils.bind(this,function(a){this.notifyRealtimeConverted(a);b(a)}),c):this.getXmlFile(a,null,b,c)}else c({message:mxResources.get("loggedOut")})}),c)};DriveClient.prototype.isGoogleRealtimeMimeType=function(a){return null!=a&&"application/vnd.jgraph.mxfile."==a.substring(0,30)};
+DriveClient.prototype.getRealtimeData=function(a,b,c,d){this.executeRequest(gapi.client.drive.realtime.get({fileId:a,supportsTeamDrives:!0}),mxUtils.bind(this,function(a){a=null!=a.result?a.result.data:null;null!=a&&null!=a.value&&null!=a.value.diagrams?b(a):null!=c&&c()}),mxUtils.bind(this,function(e){null==d&&(d=0);3>d?this.getRealtimeData(a,b,c,d+1):null!=c&&c()}))};
+DriveClient.prototype.loadRealtime=function(a,b,c){if("1"==urlParams.ignoremime||"420247213240"!=this.appId||"application/vnd.jgraph.mxfile.realtime"!=a.mimeType&&"application/mxr"!=a.mimeType)if("850530949725"!=this.appId&&(a.editable||"application/mxe"!=a.mimeType&&"application/vnd.jgraph.mxfile"!=a.mimeType)&&null!=gapi.drive.realtime){var d=mxUtils.bind(this,function(){var e=!0,g=window.setTimeout(mxUtils.bind(this,function(){e=!1;c({code:App.ERROR_TIMEOUT,retry:d})}),this.ui.timeout);gapi.drive.realtime.load(a.id,
+mxUtils.bind(this,function(a){window.clearTimeout(g);e&&b(a)}))});d()}else b();else this.redirectToNewApp(c,a.id)};
+DriveClient.prototype.getXmlFile=function(a,b,c,d,e,g){var k=gapi.auth.getToken().access_token;this.ui.loadUrl(a.downloadUrl+"&access_token="+k,mxUtils.bind(this,function(k){if(null==k)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||g)a.mimeType!=this.libraryMimeType||g?c(new DriveLibrary(this.ui,k,a)):d({message:mxResources.get("notADiagramFile")});else{if(/\.png$/i.test(a.title)){var l=k.lastIndexOf(",");0<l&&(l=this.ui.extractGraphModelFromPng(k.substring(l+
+1)),null!=l&&0<l.length&&(k=l))}var f=new DriveFile(this.ui,k,a,b);App.GOOGLE_REALTIME&&!e&&"850530949725"!=this.appId&&f.isEditable()&&a.mimeType!=this.mimeType?this.saveFile(f,!0,mxUtils.bind(this,function(a){f.desc=a;c(f)}),d,!0):c(f)}}),d,"image/"==a.mimeType.substring(0,6)&&"image/svg"!=a.mimeType.substring(0,9)||/\.png$/i.test(a.title)||/\.jpe?g$/i.test(a.title))};
+DriveClient.prototype.saveFile=function(a,b,c,d,e,g,k,l){if(a.isEditable()){var m=(new Date).getTime();e=null!=e?e:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;g=null!=g?g:!1;var f=mxUtils.bind(this,function(e,f,h){var n={mimeType:a.desc.mimeType,title:a.getTitle()};!App.GOOGLE_REALTIME&&null==a.realtime&&this.isGoogleRealtimeMimeType(a.desc.mimeType)&&(n.mimeType=this.xmlMimeType,b=!0);a.constructor==DriveFile&&null==this.getChannelId(a.desc)&&(null==l&&(l=[]),l.push({key:"channel",
+value:Editor.guid()}));h||(null!=e||g||(e=this.placeholderThumbnail,f=this.placeholderMimeType),null!=e&&null!=f&&(n.thumbnail={image:e,mimeType:f}));var v=function(){a.saveDelay=(new Date).getTime()-m;c.apply(this,arguments)},p=mxUtils.bind(this,function(c,e){null!=l&&(n.properties=l);var f=k||a.constructor!=DriveFile||null!=a.realtime?null:a.desc.etag;this.executeRequest(this.createUploadRequest(a.getId(),n,c,b||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,e,f),v,d)});this.ui.useCanvasForExport&&
+/(\.png)$/i.test(a.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){p(a,!0)}),d,this.ui.getCurrentFile()!=a?a.getData():null):p(a.getData(),!1)}),h=mxUtils.bind(this,function(){!g&&a.constructor!=DriveLibrary&&this.enableThumbnails&&"0"!=urlParams.thumb&&(null==a.realtime||a.realtime.connected)&&this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(p){}b=null==b||b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+
+1).replace(/\+/g,"-").replace(/\//g,"_");f(b,"image/png")}))||f(null,null,a.constructor!=DriveLibrary&&(null==a.realtime||a.realtime.connected))});e||!b?h():this.verifyMimeType(a.getId(),h,!0)}else this.ui.editor.graph.reset(),null!=d&&d({message:mxResources.get("readOnly")})};
+DriveClient.prototype.notifyRealtimeConverted=function(a){try{null!=gapi.drive.realtime&&gapi.drive.realtime.load(a.getId(),mxUtils.bind(this,function(b){try{null!=b&&null!=b.getModel()&&null!=b.getModel().getRoot()&&b.getModel().getRoot().set("realtimeConverted",a.desc.headRevisionId)}catch(c){}}))}catch(b){}};
 DriveClient.prototype.verifyMimeType=function(a,b,c,d){null==this.lastMimeCheck&&(this.lastMimeCheck=0);var e=(new Date).getTime();if(c||e-this.lastMimeCheck>this.mimeTypeCheckCoolOff)this.lastMimeCheck=e,this.checkingMimeType||(this.checkingMimeType=!0,this.executeRequest(gapi.client.drive.files.get({fileId:a,fields:"mimeType",supportsTeamDrives:!0}),mxUtils.bind(this,function(c){this.checkingMimeType=!1;null!=c&&"application/vnd.jgraph.mxfile.realtime"==c.mimeType?this.redirectToNewApp(d,a):null!=
 b&&b()})))};
 DriveClient.prototype.redirectToNewApp=function(a,b){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var c=window.location.protocol+"//"+this.newAppHostname+"/"+this.ui.getSearch("create title mode url drive splash".split(" "))+"#G"+b;null!=a?this.ui.confirm(mxResources.get("redirectToNewApp"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href=c}),mxUtils.bind(this,function(){this.redirectDialogShowing=!1;null!=a&&a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
 mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href=c}))}};
-DriveClient.prototype.insertFile=function(a,b,c,d,e,g,l,m){g=null!=g?g:this.mimeType;m=null!=m?m:!0;a={mimeType:g,title:a};null!=c&&(a.parents=[{kind:"drive#fileLink",id:c}]);this.executeRequest(this.createUploadRequest(null,a,b,!1,l),mxUtils.bind(this,function(a){g==this.libraryMimeType?d(new DriveLibrary(this.ui,b,a)):0==a?null!=e&&e({message:mxResources.get("errorSavingFile")}):m?this.loadRealtime(a,mxUtils.bind(this,function(c){null!=this.user?(c=new DriveFile(this.ui,b,a,c),c.lastAutosaveRevision=
-(new Date).getTime(),d(c)):null!=e&&e({message:mxResources.get("loggedOut")})}),e):d(a)}),e)};
-DriveClient.prototype.createUploadRequest=function(a,b,c,d,e){e=null!=e?e:!1;a={path:"/upload/drive/v2/files"+(null!=a?"/"+a:""),method:null!=a?"PUT":"POST",params:{uploadType:"multipart"},headers:{"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'},body:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(b)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+(null!=
-c?e?c:Base64.encode(c):"")+"\r\n---------314159265358979323846--"};d||(a.params.newRevision=!1);a.params.supportsTeamDrives=!0;return gapi.client.request(a)};
+DriveClient.prototype.insertFile=function(a,b,c,d,e,g,k,l){g=null!=g?g:App.GOOGLE_REALTIME?this.mimeType:this.xmlMimeType;l=null!=l?l:!0;a={mimeType:g,title:a};null!=c&&(a.parents=[{kind:"drive#fileLink",id:c}]);this.executeRequest(this.createUploadRequest(null,a,b,!1,k),mxUtils.bind(this,function(a){g==this.libraryMimeType?d(new DriveLibrary(this.ui,b,a)):0==a?null!=e&&e({message:mxResources.get("errorSavingFile")}):App.GOOGLE_REALTIME&&l&&this.isGoogleRealtimeMimeType(a.mimeType)?this.loadRealtime(a,
+mxUtils.bind(this,function(c){null!=this.user?(c=new DriveFile(this.ui,b,a,c),c.lastAutosaveRevision=(new Date).getTime(),d(c)):null!=e&&e({message:mxResources.get("loggedOut")})}),e,!1):d(new DriveFile(this.ui,b,a))}),e)};
+DriveClient.prototype.createUploadRequest=function(a,b,c,d,e,g){e=null!=e?e:!1;var k={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=g&&(k["If-Match"]=g);a={path:"/upload/drive/v2/files"+(null!=a?"/"+a:""),method:null!=a?"PUT":"POST",params:{uploadType:"multipart"},headers:k,body:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(b)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+
+(null!=c?e?c:Base64.encode(c):"")+"\r\n---------314159265358979323846--"};d||(a.params.newRevision=!1);a.params.supportsTeamDrives=!0;a.params.fields=this.allFields;return gapi.client.request(a)};
 DriveClient.prototype.pickFile=function(a,b){this.filePickerCallback=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("G"+a)});this.filePicked=mxUtils.bind(this,function(a){a.action==google.picker.Action.PICKED&&this.filePickerCallback(a.docs[0].id)});this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){this.ui.spinner.stop();var a=gapi.auth.getToken().access_token,d=b?"genericPicker":"filePicker",e=mxUtils.bind(this,function(a){"picker modal-dialog-bg picker-dialog-bg"==
-mxEvent.getSource(a).className&&(mxEvent.removeListener(document,"click",e),this[d].setVisible(!1))});if(null==this[d]||this[d+"Token"]!=a){this[d+"Token"]=a;var a=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0),g=(new google.picker.DocsView).setIncludeFolders(!0),l=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0),m=(new google.picker.DocsUploadView).setIncludeFolders(!0);b?(a.setMimeTypes("*/*"),g.setMimeTypes("*/*"),l.setMimeTypes("*/*")):
-(a.setMimeTypes(this.mimeTypes),g.setMimeTypes(this.mimeTypes),l.setMimeTypes(this.mimeTypes));this[d]=(new google.picker.PickerBuilder).setOAuthToken(this[d+"Token"]).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(a).addView(g).addView(l).addView(google.picker.ViewId.RECENTLY_PICKED).addView(m).setCallback(mxUtils.bind(this,function(a){a.action!=google.picker.Action.PICKED&&a.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,
+mxEvent.getSource(a).className&&(mxEvent.removeListener(document,"click",e),this[d].setVisible(!1))});if(null==this[d]||this[d+"Token"]!=a){this[d+"Token"]=a;var a=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0),g=(new google.picker.DocsView).setIncludeFolders(!0),k=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0),l=(new google.picker.DocsUploadView).setIncludeFolders(!0);b?(a.setMimeTypes("*/*"),g.setMimeTypes("*/*"),k.setMimeTypes("*/*")):
+(a.setMimeTypes(this.mimeTypes),g.setMimeTypes(this.mimeTypes),k.setMimeTypes(this.mimeTypes));this[d]=(new google.picker.PickerBuilder).setOAuthToken(this[d+"Token"]).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(a).addView(g).addView(k).addView(google.picker.ViewId.RECENTLY_PICKED).addView(l).setCallback(mxUtils.bind(this,function(a){a.action!=google.picker.Action.PICKED&&a.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,
 "click",e);a.action==google.picker.Action.PICKED&&this.filePicked(a)})).build()}mxEvent.addListener(document,"click",e);this[d].setVisible(!0)}))};
 DriveClient.prototype.pickFolder=function(a){this.folderPickerCallback=a;var b=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){this.ui.spinner.stop();var a=gapi.auth.getToken().access_token,b=mxUtils.bind(this,function(a){"picker modal-dialog-bg picker-dialog-bg"==mxEvent.getSource(a).className&&(mxEvent.removeListener(document,"click",b),this.folderPicker.setVisible(!1))});if(null==this.folderPicker||this.folderPickerToken!=
 a){this.folderPickerToken=a;var a=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder"),e=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder"),g=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder");this.folderPicker=
@@ -8088,123 +8111,133 @@ a){this.folderPickerToken=a;var a=(new google.picker.DocsView(google.picker.View
 DriveClient.prototype.pickLibrary=function(a){this.filePickerCallback=a;this.filePicked=mxUtils.bind(this,function(a){a.action==google.picker.Action.PICKED?this.filePickerCallback(a.docs[0].id):a.action==google.picker.Action.CANCEL&&null==this.ui.getCurrentFile()&&this.ui.showSplash()});this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){this.ui.spinner.stop();var a=mxUtils.bind(this,function(b){"picker modal-dialog-bg picker-dialog-bg"==mxEvent.getSource(b).className&&
 (mxEvent.removeListener(document,"click",a),this.libraryPicker.setVisible(!1))}),c=gapi.auth.getToken().access_token;if(null==this.libraryPicker||this.libraryPickerToken!=c){this.libraryPickerToken=c;var c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),d=(new google.picker.DocsView).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),
 e=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),g=(new google.picker.DocsUploadView).setIncludeFolders(!0);this.libraryPicker=(new google.picker.PickerBuilder).setOAuthToken(this.libraryPickerToken).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(c).addView(d).addView(e).addView(google.picker.ViewId.RECENTLY_PICKED).addView(g).setCallback(mxUtils.bind(this,
-function(b){b.action!=google.picker.Action.PICKED&&b.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,"click",a);b.action==google.picker.Action.PICKED&&this.filePicked(b)})).build()}mxEvent.addListener(document,"click",a);this.libraryPicker.setVisible(!0)}))};DriveClient.prototype.showPermissions=function(a){this.checkToken(mxUtils.bind(this,function(){var b=new gapi.drive.share.ShareClient(this.appId);b.setOAuthToken(gapi.auth.getToken().access_token);b.setItemIds([a]);b.showSettingsDialog()}))};DropboxFile=function(a,b,c){DrawioFile.call(this,a,b);this.stat=c};mxUtils.extend(DropboxFile,DrawioFile);DropboxFile.prototype.getHash=function(){return"D"+encodeURIComponent(this.stat.path_display.substring(1))};DropboxFile.prototype.getMode=function(){return App.MODE_DROPBOX};DropboxFile.prototype.isAutosaveOptional=function(){return!0};DropboxFile.prototype.getTitle=function(){return this.stat.name};DropboxFile.prototype.isRenamable=function(){return!0};
+function(b){b.action!=google.picker.Action.PICKED&&b.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,"click",a);b.action==google.picker.Action.PICKED&&this.filePicked(b)})).build()}mxEvent.addListener(document,"click",a);this.libraryPicker.setVisible(!0)}))};DriveClient.prototype.showPermissions=function(a){this.checkToken(mxUtils.bind(this,function(){var b=new gapi.drive.share.ShareClient(this.appId);b.setOAuthToken(gapi.auth.getToken().access_token);b.setItemIds([a]);b.showSettingsDialog()}))};
+DriveClient.prototype.getRealtimeAge=function(a,b){var c=null!=b&&null!=b.value&&null!=b.value.modifiedDate?b.value.modifiedDate.json:null,d=0;null!=c&&0<c&&(c=new Date(c),d=(new Date(a.modifiedDate)).getTime()-c.getTime());return d};
+DriveClient.prototype.convertRealtimeFile=function(a,b,c){this.getRealtimeData(a.id,mxUtils.bind(this,function(d){var e=this.getRealtimeAge(a,d);if(0>e){var g=this.convertJsonToXml(d);console.log("converted realtime model",e,d,g);b(new DriveFile(this.ui,mxUtils.getXml(g),a))}else console.log("using newer XML file",e,d),this.getXmlFile(a,null,b,c)}),mxUtils.bind(this,function(){console.log("no realtime data, using XML file");this.getXmlFile(a,null,b,c)}))};
+DriveClient.prototype.convertJsonToXml=function(a,b){if(null==a.value||null==a.value.diagrams)throw Error("Invalid JSON: no diagrams in root map");for(var c=mxUtils.createXmlDocument().createElement("mxfile"),d=a.value.diagrams.value,e=0;e<d.length;e++)try{var g=this.decodeJsonPage(d[e].value,c.ownerDocument.createElement("diagram"),b);c.appendChild(g)}catch(k){throw Error("Error on page "+e+": "+k.stack);}return c};
+DriveClient.prototype.decodeJsonPage=function(a,b,c){if(null==a)throw Error("Invalid JSON: json for page is null");var d=new mxCodec,e=this.createJsonCell(a.root,d);if(null==e)throw Error("Invalid JSON: no root cell for page");d=d.encode(new mxGraphModel(e));this.decodeJsonViewState(a,d);c?b.appendChild(d):mxUtils.setTextContent(b,this.ui.editor.graph.compressNode(d));null!=a.id?b.setAttribute("id",a.id.json):this.node.setAttribute("id",Editor.guid());null!=a.name&&b.setAttribute("name",a.name.json);
+return b};
+DriveClient.prototype.decodeJsonViewState=function(a,b){var c=null!=a.pageFormat?a.pageFormat.json:null;null!=c&&0<c.length&&(c=c.split(","),1<c.length&&(b.setAttribute("pageWidth",c[0]),b.setAttribute("pageHeight",c[1])));c=null!=a.backgroundColor?a.backgroundColor.json:null;null!=c&&0<c.length&&b.setAttribute("background",c);c=null!=a.backgroundImage?a.backgroundImage.json:null;null!=c&&0<c.length&&b.setAttribute("backgroundImage",c);b.setAttribute("fold",null!=a.foldingEnabled?a.foldingEnabled.json:"0");
+b.setAttribute("pageScale",null!=a.pageScale?a.pageScale.json:mxGraph.prototype.pageScale);b.setAttribute("math",null!=a.mathEnabled?a.mathEnabled.json:"0");b.setAttribute("shadow",null!=a.shadowVisible?a.shadowVisible.json:"0");return b};
+DriveClient.prototype.createJsonCell=function(a,b){if(null!=a&&null!=a.id){var c=a.value,d=this.jsonToCell(c,b);b.putObject(a.id,d);d.source=null!=c.source?this.createJsonCell(c.source,b):null;d.target=null!=c.target?this.createJsonCell(c.target,b):null;this.createJsonCell(c.parent,b);for(var e=0;e<c.children.value.length;e++){var g=this.createJsonCell(c.children.value[e],b);if(null!=g)d.insert(g);else throw Error("Invalid JSON: no child "+e+" for cell "+a.id);}return d}return null!=a&&null!=a.ref?
+b.objects[a.ref]:null};
+DriveClient.prototype.jsonToCell=function(a,b){var c=new mxCell;c.id=a.cellId.json;c.vertex="vertex"==a.type.json;c.edge="edge"==a.type.json;c.connectable="0"!=a.connectable.json;c.collapsed="1"==a.collapsed.json;c.visible="0"!=a.visible.json;c.style=null!=a.style?a.style.json:null;c.value=null!=a.xmlValue?mxUtils.parseXml(a.xmlValue.json).documentElement:null!=a.value?a.value.json:null;c.geometry=null!=a.geometry?b.decode(mxUtils.parseXml(a.geometry.json).documentElement):null;return c};DropboxFile=function(a,b,c){DrawioFile.call(this,a,b);this.stat=c};mxUtils.extend(DropboxFile,DrawioFile);DropboxFile.prototype.getHash=function(){return"D"+encodeURIComponent(this.stat.path_display.substring(1))};DropboxFile.prototype.getMode=function(){return App.MODE_DROPBOX};DropboxFile.prototype.isAutosaveOptional=function(){return!0};DropboxFile.prototype.getTitle=function(){return this.stat.name};DropboxFile.prototype.isRenamable=function(){return!0};
 DropboxFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};DropboxFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};DropboxFile.prototype.doSave=function(a,b,c){var d=this.stat.name;this.stat.name=a;DrawioFile.prototype.save.apply(this,arguments);this.stat.name=d;this.saveFile(a,!1,b,c)};
-DropboxFile.prototype.saveFile=function(a,b,c,d){this.isEditable()?this.savingFile?null!=d&&d({code:App.ERROR_BUSY}):(b=mxUtils.bind(this,function(b){if(b){this.savingFile=!0;var e=this.isModified,l=this.isModified(),m=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return l}});m();var n=mxUtils.bind(this,function(b){var f=this.stat.path_display.lastIndexOf("/"),f=1<f?this.stat.path_display.substring(1,f+1):null;this.ui.dropbox.saveFile(a,b,mxUtils.bind(this,function(a){this.savingFile=
-!1;this.isModified=e;this.stat=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(l||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){m();b()}}d(a)}}),f)});this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){n(this.ui.base64ToBlob(a,"image/png"))}),d,this.ui.getCurrentFile()!=this?this.getData():null):n(this.getData())}else null!=
+DropboxFile.prototype.saveFile=function(a,b,c,d){this.isEditable()?this.savingFile?null!=d&&d({code:App.ERROR_BUSY}):(b=mxUtils.bind(this,function(b){if(b){this.savingFile=!0;var e=this.isModified,k=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return k}});l();var m=mxUtils.bind(this,function(b){var f=this.stat.path_display.lastIndexOf("/"),f=1<f?this.stat.path_display.substring(1,f+1):null;this.ui.dropbox.saveFile(a,b,mxUtils.bind(this,function(a){this.savingFile=
+!1;this.isModified=e;this.stat=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(k||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}),f)});this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(this.ui.base64ToBlob(a,"image/png"))}),d,this.ui.getCurrentFile()!=this?this.getData():null):m(this.getData())}else null!=
 d&&d()}),this.getTitle()==a?b(!0):this.ui.dropbox.checkExists(a,b)):null!=c&&c()};DropboxFile.prototype.rename=function(a,b,c){this.ui.dropbox.renameFile(this,a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.stat=d,this.descriptorChanged(),null!=b&&b()):(this.stat=d,this.descriptorChanged(),this.save(!0,b,c))}),c)};DropboxLibrary=function(a,b,c){DropboxFile.call(this,a,b,c)};mxUtils.extend(DropboxLibrary,DropboxFile);DropboxLibrary.prototype.isAutosave=function(){return!0};DropboxLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};DropboxLibrary.prototype.open=function(){};DropboxClient=function(a){DrawioClient.call(this,a,"dbauth");this.client=new Dropbox({clientId:App.DROPBOX_APPKEY});this.client.setAccessToken(this.token)};mxUtils.extend(DropboxClient,DrawioClient);DropboxClient.prototype.appPath="/drawio/";DropboxClient.prototype.extension=".html";DropboxClient.prototype.writingFile=!1;DropboxClient.prototype.maxRetries=4;
 DropboxClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null;this.client.authTokenRevoke().then(mxUtils.bind(this,function(){this.client.setAccessToken(null)}))};
 DropboxClient.prototype.updateUser=function(a,b,c){var d=!0,e=window.setTimeout(mxUtils.bind(this,function(){d=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout),g=this.client.usersGetCurrentAccount();g.then(mxUtils.bind(this,function(b){window.clearTimeout(e);d&&(this.setUser(new DrawioUser(b.account_id,b.email,b.name.display_name)),a())}));g["catch"](mxUtils.bind(this,function(g){window.clearTimeout(e);d&&(null==g||401!==g.status||c?b({message:mxResources.get("accessDenied")}):(this.setUser(null),
 this.client.setAccessToken(null),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,b,!0)}),b)))}))};
-DropboxClient.prototype.authenticate=function(a,b){if(null==window.onDropboxCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(l,m){if(d){window.onDropboxCallback=null;d=!1;try{null==l?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.client.setAccessToken(l),
-this.setUser(null),e&&this.setPersistentToken(l),a())}catch(n){b(n)}finally{null!=m&&m.close()}}else null!=m&&m.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onDropboxCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})};
-DropboxClient.prototype.executePromise=function(a,b,c){var d=mxUtils.bind(this,function(g){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(m);l&&null!=b&&b(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null),
+DropboxClient.prototype.authenticate=function(a,b){if(null==window.onDropboxCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(k,l){if(d){window.onDropboxCallback=null;d=!1;try{null==k?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.client.setAccessToken(k),
+this.setUser(null),e&&this.setPersistentToken(k),a())}catch(m){b(m)}finally{null!=l&&l.close()}}else null!=l&&l.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onDropboxCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})};
+DropboxClient.prototype.executePromise=function(a,b,c){var d=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(l);k&&null!=b&&b(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(l);k&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null),
 g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c)))}))}),e=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){e(!0)},c,a):d(a)});null===this.client.getAccessToken()?this.authenticate(function(){e(!0)},c):e(!1)};DropboxClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!0)};
-DropboxClient.prototype.getFile=function(a,b,c,d){d=null!=d?d:!1;var e=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&e){var g=mxUtils.bind(this,function(){var d=a.split("/");this.ui.convertFile(a,0<d.length?d[d.length-1]:a,null,this.extension,b,c)});null!=this.token?g():this.authenticate(g,c)}else g={path:"/"+a},null!=urlParams.rev&&(g.rev=urlParams.rev),this.readFile(g,mxUtils.bind(this,function(c,g){var l=e?c.lastIndexOf(","):
--1,f=null;0<l&&(l=this.ui.extractGraphModelFromPng(c.substring(l+1)),null!=l&&0<l.length?c=l:f=new LocalFile(this,c,a,!0));b(null!=f?f:d?new DropboxLibrary(this.ui,c,g):new DropboxFile(this.ui,c,g))}),c,e)};
-DropboxClient.prototype.readFile=function(a,b,c,d){var e=mxUtils.bind(this,function(l){var m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),f=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});f.then(mxUtils.bind(this,function(a){}));f["catch"](function(a){window.clearTimeout(n);m&&null!=a&&409==a.status&&(m=!1,c({message:mxResources.get("fileNotFound")}))});f=this.client.filesDownload(a);f.then(mxUtils.bind(this,
-function(a){window.clearTimeout(n);if(m){m=!1;try{var e=new FileReader;e.onload=mxUtils.bind(this,function(c){b(e.result,a)});d?e.readAsDataURL(a.fileBlob):e.readAsText(a.fileBlob)}catch(q){c(q)}}}));f["catch"](mxUtils.bind(this,function(a){window.clearTimeout(n);m&&(m=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),l?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},
+DropboxClient.prototype.getFile=function(a,b,c,d){d=null!=d?d:!1;var e=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&e){var g=mxUtils.bind(this,function(){var d=a.split("/");this.ui.convertFile(a,0<d.length?d[d.length-1]:a,null,this.extension,b,c)});null!=this.token?g():this.authenticate(g,c)}else g={path:"/"+a},null!=urlParams.rev&&(g.rev=urlParams.rev),this.readFile(g,mxUtils.bind(this,function(c,g){var k=e?c.lastIndexOf(","):
+-1,f=null;0<k&&(k=this.ui.extractGraphModelFromPng(c.substring(k+1)),null!=k&&0<k.length?c=k:f=new LocalFile(this,c,a,!0));b(null!=f?f:d?new DropboxLibrary(this.ui,c,g):new DropboxFile(this.ui,c,g))}),c,e)};
+DropboxClient.prototype.readFile=function(a,b,c,d){var e=mxUtils.bind(this,function(k){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),f=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});f.then(mxUtils.bind(this,function(a){}));f["catch"](function(a){window.clearTimeout(m);l&&null!=a&&409==a.status&&(l=!1,c({message:mxResources.get("fileNotFound")}))});f=this.client.filesDownload(a);f.then(mxUtils.bind(this,
+function(a){window.clearTimeout(m);if(l){l=!1;try{var e=new FileReader;e.onload=mxUtils.bind(this,function(c){b(e.result,a)});d?e.readAsDataURL(a.fileBlob):e.readAsText(a.fileBlob)}catch(u){c(u)}}}));f["catch"](mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(l=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),k?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)},
 c)})}):this.authenticate(function(){e(!0)},c)))}))}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},c,a):e(a)});null===this.client.getAccessToken()?this.authenticate(function(){g(!0)},c):g(!1)};
 DropboxClient.prototype.checkExists=function(a,b,c){var d=this.client.filesGetMetadata({path:"/"+a.toLowerCase(),include_deleted:!1});this.executePromise(d,mxUtils.bind(this,function(d){c?b(!1,!0,d):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){b(!0,!0,d)},function(){b(!1,!0,d)})}),function(a){b(!0,!1)})};
-DropboxClient.prototype.renameFile=function(a,b,c,d){if(/[\\\/:\?\*"\|]/.test(b))d({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=b){var e=a.stat.path_display.substring(1),g=e.lastIndexOf("/");0<g&&(b=e.substring(0,g+1)+b)}null!=a&&null!=b&&a.stat.path_lower.substring(1)!==b.toLowerCase()?this.checkExists(b,mxUtils.bind(this,function(e,g,n){e?(e=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+b,autorename:!1});this.executePromise(e,
-c,d)}),g&&n.path_lower.substring(1)!==b.toLowerCase()?(g=this.client.filesDelete({path:"/"+b.toLowerCase()}),this.executePromise(g,e,d)):e()):d()})):d({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,b,c,d){this.insertFile(a,b,c,d,!0)};
+DropboxClient.prototype.renameFile=function(a,b,c,d){if(/[\\\/:\?\*"\|]/.test(b))d({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=b){var e=a.stat.path_display.substring(1),g=e.lastIndexOf("/");0<g&&(b=e.substring(0,g+1)+b)}null!=a&&null!=b&&a.stat.path_lower.substring(1)!==b.toLowerCase()?this.checkExists(b,mxUtils.bind(this,function(e,g,m){e?(e=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+b,autorename:!1});this.executePromise(e,
+c,d)}),g&&m.path_lower.substring(1)!==b.toLowerCase()?(g=this.client.filesDelete({path:"/"+b.toLowerCase()}),this.executePromise(g,e,d)):e()):d()})):d({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,b,c,d){this.insertFile(a,b,c,d,!0)};
 DropboxClient.prototype.insertFile=function(a,b,c,d,e){e=null!=e?e:!1;this.checkExists(a,mxUtils.bind(this,function(g){g?this.saveFile(a,b,mxUtils.bind(this,function(a){e?c(new DropboxLibrary(this.ui,b,a)):c(new DropboxFile(this.ui,b,a))}),d):d()}))};
 DropboxClient.prototype.saveFile=function(a,b,c,d,e){/[\\\/:\?\*"\|]/.test(a)?d({message:mxResources.get("dropboxCharsNotAllowed")}):15E7<=b.length?d({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 150 MB)"}):(a=this.client.filesUpload({path:"/"+(null!=e?e:"")+a,mode:{".tag":"overwrite"},mute:!0,contents:new Blob([b],{type:"text/plain"})}),this.executePromise(a,c,d))};
-DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(b){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),d=b[0].link.indexOf(this.appPath);if(0<d){var e=decodeURIComponent(b[0].link.substring(d+this.appPath.length-1));this.readFile({path:e},mxUtils.bind(this,function(d,l){if(null!=l&&l.id==b[0].id)try{this.ui.spinner.stop(),
-a(e.substring(1),new DropboxLibrary(this.ui,d,l))}catch(m){this.ui.handleError(m)}else this.createLibrary(b[0],a,c)}),c)}else this.createLibrary(b[0],a,c)}})})};
+DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(b){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),d=b[0].link.indexOf(this.appPath);if(0<d){var e=decodeURIComponent(b[0].link.substring(d+this.appPath.length-1));this.readFile({path:e},mxUtils.bind(this,function(d,k){if(null!=k&&k.id==b[0].id)try{this.ui.spinner.stop(),
+a(e.substring(1),new DropboxLibrary(this.ui,d,k))}catch(l){this.ui.handleError(l)}else this.createLibrary(b[0],a,c)}),c)}else this.createLibrary(b[0],a,c)}})})};
 DropboxClient.prototype.createLibrary=function(a,b,c){this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){this.ui.loadUrl(a.link,mxUtils.bind(this,function(d){this.insertFile(a.name,d,mxUtils.bind(this,function(a){try{this.ui.spinner.stop(),b(a.getHash().substring(1),a)}catch(g){c(g)}}),c,!0)}),c)}),mxUtils.bind(this,function(){this.ui.spinner.stop()}))};
 DropboxClient.prototype.pickFile=function(a,b){null!=Dropbox.choose?(a=null!=a?a:mxUtils.bind(this,function(a,b){this.ui.loadFile(null!=a?"D"+encodeURIComponent(a):b.getHash(),null,b)}),Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(c){if(this.ui.spinner.spin(document.body,mxResources.get("loading")))if(b)this.ui.spinner.stop(),a(c[0].link);else{var d=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),e=mxUtils.bind(this,
-function(b,c){this.ui.spinner.stop();a(b,c)}),g=/\.png$/i.test(c[0].name);if(/\.vsdx$/i.test(c[0].name)||/\.gliffy$/i.test(c[0].name)||!this.ui.useCanvasForExport&&g)e(c[0].link);else{var l=c[0].link.indexOf(this.appPath);if(0<l){var m=decodeURIComponent(c[0].link.substring(l+this.appPath.length-1));this.readFile({path:m},mxUtils.bind(this,function(b,f){if(null!=f&&f.id==c[0].id){var h=g?b.lastIndexOf(","):-1;this.ui.spinner.stop();var l=null;0<h&&(h=this.ui.extractGraphModelFromPng(b.substring(h+
-1)),null!=h&&0<h.length?b=h:l=new LocalFile(this,b,m,!0));a(m.substring(1),null!=l?l:new DropboxFile(this.ui,b,f))}else this.createFile(c[0],e,d)}),d,g)}else this.createFile(c[0],e,d)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})};
+function(b,c){this.ui.spinner.stop();a(b,c)}),g=/\.png$/i.test(c[0].name);if(/\.vsdx$/i.test(c[0].name)||/\.gliffy$/i.test(c[0].name)||!this.ui.useCanvasForExport&&g)e(c[0].link);else{var k=c[0].link.indexOf(this.appPath);if(0<k){var l=decodeURIComponent(c[0].link.substring(k+this.appPath.length-1));this.readFile({path:l},mxUtils.bind(this,function(b,f){if(null!=f&&f.id==c[0].id){var h=g?b.lastIndexOf(","):-1;this.ui.spinner.stop();var k=null;0<h&&(h=this.ui.extractGraphModelFromPng(b.substring(h+
+1)),null!=h&&0<h.length?b=h:k=new LocalFile(this,b,l,!0));a(l.substring(1),null!=k?k:new DropboxFile(this.ui,b,f))}else this.createFile(c[0],e,d)}),d,g)}else this.createFile(c[0],e,d)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})};
 DropboxClient.prototype.createFile=function(a,b,c){var d=/(\.png)$/i.test(a.name);this.ui.loadUrl(a.link,mxUtils.bind(this,function(e){null!=e&&0<e.length?this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){var g=d?e.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(e.substring(g+1)),null!=g&&0<g.length&&(e=g));this.insertFile(a.name,e,mxUtils.bind(this,function(c){b(a.name,c)}),c)}),mxUtils.bind(this,function(){this.ui.spinner.stop()})):
 (this.ui.spinner.stop(),c({message:mxResources.get("errorLoadingFile")}))}),c,d)};OneDriveFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c};mxUtils.extend(OneDriveFile,DrawioFile);OneDriveFile.prototype.getIdOf=function(a,b){return(a.parentReference.driveId?a.parentReference.driveId+"/":"")+(b?a.parentReference.id:a.id)};OneDriveFile.prototype.getId=function(){return this.getIdOf(this.meta)};OneDriveFile.prototype.getParentId=function(){return this.getIdOf(this.meta,!0)};OneDriveFile.prototype.getHash=function(){return"W"+encodeURIComponent(this.getId())};
 OneDriveFile.prototype.getMode=function(){return App.MODE_ONEDRIVE};OneDriveFile.prototype.isAutosaveOptional=function(){return!0};OneDriveFile.prototype.getTitle=function(){return this.meta.name};OneDriveFile.prototype.isRenamable=function(){return!0};OneDriveFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};OneDriveFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};
 OneDriveFile.prototype.doSave=function(a,b,c){var d=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=d;this.saveFile(a,!1,b,c)};
-OneDriveFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});l();this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=
-!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}))}else this.ui.oneDrive.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=d&&d()}));else null!=c&&c()};
+OneDriveFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=
+!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){k();b()}}d(a)}}))}else this.ui.oneDrive.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=d&&d()}));else null!=c&&c()};
 OneDriveFile.prototype.rename=function(a,b,c){this.ui.oneDrive.renameFile(this,a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.meta=d,this.descriptorChanged(),null!=b&&b()):(this.meta=d,this.save(!0,b,c))}),c)};OneDriveFile.prototype.move=function(a,b,c){this.ui.oneDrive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.meta=a;this.descriptorChanged();null!=b&&b(a)}),c)};OneDriveLibrary=function(a,b,c){OneDriveFile.call(this,a,b,c)};mxUtils.extend(OneDriveLibrary,OneDriveFile);OneDriveLibrary.prototype.isAutosave=function(){return!0};OneDriveLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};OneDriveLibrary.prototype.open=function(){};OneDriveClient=function(a){DrawioClient.call(this,a,"odauth");this.token=this.token};mxUtils.extend(OneDriveClient,DrawioClient);OneDriveClient.prototype.clientId="test.draw.io"==window.location.hostname?"2e598409-107f-4b59-89ca-d7723c8e00a4":"45c10911-200f-4e27-a666-9e9fca147395";OneDriveClient.prototype.scopes="user.read files.readwrite.all";OneDriveClient.prototype.redirectUri="https://"+window.location.hostname+"/onedrive3.html";OneDriveClient.prototype.extension=".html";
 OneDriveClient.prototype.baseUrl="https://graph.microsoft.com/v1.0";OneDriveClient.prototype.get=function(a,b,c){a=new mxXmlRequest(a,null,"GET");a.setRequestHeaders=mxUtils.bind(this,function(a,b){a.setRequestHeader("Authorization","Bearer "+this.token)});a.send(b,c);return a};
 OneDriveClient.prototype.updateUser=function(a,b,c){var d=!0,e=window.setTimeout(mxUtils.bind(this,function(){d=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.get(this.baseUrl+"/me",mxUtils.bind(this,function(g){window.clearTimeout(e);d&&(200>g.getStatus()||300<=g.getStatus()?c?b({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,b,!0)}),b)):(g=JSON.parse(g.getText()),this.setUser(new DrawioUser(g.id,null,g.displayName)),
 a()))}),b)};
-OneDriveClient.prototype.authenticate=function(a,b){if(null==window.onOneDriveCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){var l="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+this.clientId+"&response_type=token&redirect_uri="+encodeURIComponent(this.redirectUri)+"&scope="+encodeURIComponent(this.scopes)+"&response_mode=fragment",l=window.open(l,"odauth",["width=525,height=525","top="+(window.screenY+
-Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join());null!=l&&(window.onOneDriveCallback=mxUtils.bind(this,function(l,n){if(d){window.onOneDriveCallback=null;d=!1;try{null==l?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.setUser(null),this.token=l,e&&this.setPersistentToken(l),a())}catch(f){b(f)}finally{null!=n&&n.close()}}else null!=n&&n.close()}),l.focus())}),
+OneDriveClient.prototype.authenticate=function(a,b){if(null==window.onOneDriveCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){var k="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+this.clientId+"&response_type=token&redirect_uri="+encodeURIComponent(this.redirectUri)+"&scope="+encodeURIComponent(this.scopes)+"&response_mode=fragment",k=window.open(k,"odauth",["width=525,height=525","top="+(window.screenY+
+Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join());null!=k&&(window.onOneDriveCallback=mxUtils.bind(this,function(k,m){if(d){window.onOneDriveCallback=null;d=!1;try{null==k?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.setUser(null),this.token=k,e&&this.setPersistentToken(k),a())}catch(f){b(f)}finally{null!=m&&m.close()}}else null!=m&&m.close()}),k.focus())}),
 mxUtils.bind(this,function(){d&&(window.onOneDriveCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})};
-OneDriveClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);this.get(a,mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(200<=a.getStatus()&&299>=a.getStatus()||404==a.getStatus()?b(a):401===a.getStatus()||400===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,
+OneDriveClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);this.get(a,mxUtils.bind(this,function(a){window.clearTimeout(l);k&&(200<=a.getStatus()&&299>=a.getStatus()||404==a.getStatus()?b(a):401===a.getStatus()||400===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,
 function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c)):c(this.parseRequestText(a)))}),c)}),e=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){e(!0)},c,a):d(a)});null==this.token?this.authenticate(function(){e(!0)},c):e(!1)};OneDriveClient.prototype.getItemRef=function(a){var b=a.split("/");return 1<b.length?{driveId:b[0],id:b[1]}:{id:a}};
 OneDriveClient.prototype.getItemURL=function(a,b){var c=a.split("/");return 1<c.length?(b?"":this.baseUrl)+"/drives/"+c[0]+"/items/"+c[1]:(b?"":this.baseUrl)+"/me/drive/items/"+a};OneDriveClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!1,!0)};
-OneDriveClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var d=JSON.parse(a.getText()),g=/\.png$/i.test(d.name);if(/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&g)this.ui.convertFile(d["@microsoft.graph.downloadUrl"],d.name,null!=d.file?d.file.mimeType:null,this.extension,b,c);else{var n=!0,f=window.setTimeout(mxUtils.bind(this,function(){n=
-!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.loadUrl(d["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){window.clearTimeout(f);if(n){var c=g?a.lastIndexOf(","):-1,h=null;0<c&&(c=this.ui.extractGraphModelFromPng(a.substring(c+1)),null!=c&&0<c.length?a=c:h=new LocalFile(this.ui,a,d.name,!0));null!=h?b(h):e?b(new OneDriveLibrary(this.ui,a,d)):b(new OneDriveFile(this.ui,a,d))}}),mxUtils.bind(this,function(a){window.clearTimeout(f);n&&c(this.parseRequestText(a))}),g||null!=d.file&&
+OneDriveClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var d=JSON.parse(a.getText()),g=/\.png$/i.test(d.name);if(/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&g)this.ui.convertFile(d["@microsoft.graph.downloadUrl"],d.name,null!=d.file?d.file.mimeType:null,this.extension,b,c);else{var m=!0,f=window.setTimeout(mxUtils.bind(this,function(){m=
+!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.loadUrl(d["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){window.clearTimeout(f);if(m){var c=g?a.lastIndexOf(","):-1,h=null;0<c&&(c=this.ui.extractGraphModelFromPng(a.substring(c+1)),null!=c&&0<c.length?a=c:h=new LocalFile(this.ui,a,d.name,!0));null!=h?b(h):e?b(new OneDriveLibrary(this.ui,a,d)):b(new OneDriveFile(this.ui,a,d))}}),mxUtils.bind(this,function(a){window.clearTimeout(f);m&&c(this.parseRequestText(a))}),g||null!=d.file&&
 null!=d.file.mimeType&&"image/"==d.file.mimeType.substring(0,6))}}else c(this.parseRequestText(a))}),c)};OneDriveClient.prototype.renameFile=function(a,b,c,d){null!=a&&null!=b&&this.checkExists(a.getParentId(),b,!1,mxUtils.bind(this,function(e){e?this.writeFile(this.getItemURL(a.getId()),JSON.stringify({name:b}),"PATCH","application/json",c,d):d()}))};
 OneDriveClient.prototype.moveFile=function(a,b,c,d){b=this.getItemRef(b);var e=this.getItemRef(a);b.driveId!=e.driveId?d({message:mxResources.get("cannotMoveOneDrive",null,"Moving a file between accounts is not supported yet.")}):this.writeFile(this.getItemURL(a),JSON.stringify({parentReference:b}),"PATCH","application/json",c,d)};OneDriveClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e)};
-OneDriveClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;this.checkExists(g,a,!0,mxUtils.bind(this,function(l){l?(l="/me/drive/root",null!=g&&(l=this.getItemURL(g,!0)),this.writeFile(this.baseUrl+l+"/children/"+a+"/content",b,"PUT",null,mxUtils.bind(this,function(a){e?c(new OneDriveLibrary(this.ui,b,a)):c(new OneDriveFile(this.ui,b,a))}),d)):d()}))};
+OneDriveClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;this.checkExists(g,a,!0,mxUtils.bind(this,function(k){k?(k="/me/drive/root",null!=g&&(k=this.getItemURL(g,!0)),this.writeFile(this.baseUrl+k+"/children/"+a+"/content",b,"PUT",null,mxUtils.bind(this,function(a){e?c(new OneDriveLibrary(this.ui,b,a)):c(new OneDriveFile(this.ui,b,a))}),d)):d()}))};
 OneDriveClient.prototype.checkExists=function(a,b,c,d){var e="/me/drive/root";null!=a&&(e=this.getItemURL(a,!0));this.executeRequest(this.baseUrl+e+"/children/"+b,mxUtils.bind(this,function(a){404==a.getStatus()?d(!0):c?(this.ui.spinner.stop(),this.ui.confirm(mxResources.get("replaceIt",[b]),function(){d(!0)},function(){d(!1)})):(this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)}))}),function(a){d(!1)},!0)};
 OneDriveClient.prototype.saveFile=function(a,b,c){var d=mxUtils.bind(this,function(d){var e=this.getItemURL(a.getId())+"/content/";this.writeFile(e,d,"PUT",null,b,c)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){d(this.ui.base64ToBlob(a,"image/png"))}),c,this.ui.getCurrentFile()!=a?a.getData():null):d(a.getData())};
-OneDriveClient.prototype.writeFile=function(a,b,c,d,e,g){if(null!=a&&null!=b){var l=mxUtils.bind(this,function(n){var f=!0,h=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,retry:m})}),this.ui.timeout),k=new mxXmlRequest(a,b,c);k.setRequestHeaders=mxUtils.bind(this,function(a,b){a.setRequestHeader("Content-Type",d||" ");a.setRequestHeader("Authorization","Bearer "+this.token)});k.send(mxUtils.bind(this,function(a){window.clearTimeout(h);f&&(200<=a.getStatus()&&299>=a.getStatus()?
-e(JSON.parse(a.getText())):401===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,n?g({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){m(!0)},g)})}):this.authenticate(function(){l(!0)},g)):g(this.parseRequestText(a)))}),mxUtils.bind(this,function(a){window.clearTimeout(h);f&&g(this.parseRequestText(a))}))}),m=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){m(!0)},g,a):l(a)});null==this.token?
-this.authenticate(function(){m(!0)},g):m(!1)}else g({message:mxResources.get("unknownError")})};OneDriveClient.prototype.parseRequestText=function(a){var b={message:mxResources.get("unknownError")};try{b=JSON.parse(a.getText())}catch(c){}return b};OneDriveClient.prototype.pickLibrary=function(a){this.pickFile(function(b){a(b)})};
+OneDriveClient.prototype.writeFile=function(a,b,c,d,e,g){if(null!=a&&null!=b){var k=mxUtils.bind(this,function(m){var f=!0,h=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,retry:l})}),this.ui.timeout),n=new mxXmlRequest(a,b,c);n.setRequestHeaders=mxUtils.bind(this,function(a,b){a.setRequestHeader("Content-Type",d||" ");a.setRequestHeader("Authorization","Bearer "+this.token)});n.send(mxUtils.bind(this,function(a){window.clearTimeout(h);f&&(200<=a.getStatus()&&299>=a.getStatus()?
+e(JSON.parse(a.getText())):401===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,m?g({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){l(!0)},g)})}):this.authenticate(function(){k(!0)},g)):g(this.parseRequestText(a)))}),mxUtils.bind(this,function(a){window.clearTimeout(h);f&&g(this.parseRequestText(a))}))}),l=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){l(!0)},g,a):k(a)});null==this.token?
+this.authenticate(function(){l(!0)},g):l(!1)}else g({message:mxResources.get("unknownError")})};OneDriveClient.prototype.parseRequestText=function(a){var b={message:mxResources.get("unknownError")};try{b=JSON.parse(a.getText())}catch(c){}return b};OneDriveClient.prototype.pickLibrary=function(a){this.pickFile(function(b){a(b)})};
 OneDriveClient.prototype.pickFolder=function(a){OneDrive.save({clientId:this.clientId,action:"query",openInNewWindow:!0,advanced:{redirectUri:this.redirectUri,queryParameters:"select=id,name,parentReference"},success:mxUtils.bind(this,function(b){this.token=b.accessToken;a(b)}),cancel:function(){},error:mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)})})};
 OneDriveClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("W"+encodeURIComponent(a))});OneDrive.open({clientId:this.clientId,action:"query",multiSelect:!1,advanced:{redirectUri:this.redirectUri,queryParameters:"select=id,name,parentReference"},success:mxUtils.bind(this,function(b){null!=b&&null!=b.value&&0<b.value.length&&(this.token=b.accessToken,a(OneDriveFile.prototype.getIdOf(b.value[0]),b))}),cancel:function(){},error:mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),
 a)})})};OneDriveClient.prototype.logout=function(){if(isLocalStorage){var a=localStorage.getItem("odpickerv7cache");null!=a&&'{"odsdkLoginHint":{'==a.substring(0,19)&&localStorage.removeItem("odpickerv7cache")}this.clearPersistentToken();this.setUser(null);this.token=null};GitHubFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c};mxUtils.extend(GitHubFile,DrawioFile);GitHubFile.prototype.getHash=function(){return encodeURIComponent("H"+encodeURIComponent(this.meta.org)+"/"+(null!=this.meta.repo?encodeURIComponent(this.meta.repo)+"/"+(null!=this.meta.ref?this.meta.ref+(null!=this.meta.path?"/"+this.meta.path:""):""):""))};
 GitHubFile.prototype.getPublicUrl=function(a){null!=this.meta.download_url?mxUtils.get(this.meta.download_url,mxUtils.bind(this,function(b){a(200<=b.getStatus()&&299>=b.getStatus()?this.meta.download_url:null)}),mxUtils.bind(this,function(){a(null)})):a(null)};GitHubFile.prototype.getMode=function(){return App.MODE_GITHUB};GitHubFile.prototype.isAutosave=function(){return!1};GitHubFile.prototype.getTitle=function(){return this.meta.name};GitHubFile.prototype.isRenamable=function(){return!1};
 GitHubFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};GitHubFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};GitHubFile.prototype.doSave=function(a,b,c){var d=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=d;this.saveFile(a,!1,b,c)};
-GitHubFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});l();this.ui.gitHub.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta.sha=a.content.sha;this.meta.html_url=a.content.html_url;this.meta.download_url=a.content.download_url;
-this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());this.isModified()&&this.addUnsavedStatus();if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}))}else this.ui.pickFolder(App.MODE_GITHUB,mxUtils.bind(this,function(b){this.ui.gitHub.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=
+GitHubFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.gitHub.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta.sha=a.content.sha;this.meta.html_url=a.content.html_url;this.meta.download_url=a.content.download_url;
+this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());this.isModified()&&this.addUnsavedStatus();if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){k();b()}}d(a)}}))}else this.ui.pickFolder(App.MODE_GITHUB,mxUtils.bind(this,function(b){this.ui.gitHub.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=
 !1;null!=d&&d()}),!1,b)}));else null!=c&&c()};GitHubLibrary=function(a,b,c){GitHubFile.call(this,a,b,c)};mxUtils.extend(GitHubLibrary,GitHubFile);GitHubLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};GitHubLibrary.prototype.open=function(){};GitHubClient=function(a){DrawioClient.call(this,a,"ghauth")};mxUtils.extend(GitHubClient,DrawioClient);GitHubClient.prototype.clientId="test.draw.io"==window.location.hostname?"23bc97120b9035515661":"89c9e4624ca416554489";GitHubClient.prototype.scope="repo";GitHubClient.prototype.extension=".xml";GitHubClient.prototype.baseUrl="https://api.github.com";GitHubClient.prototype.maxFileSize=1E6;
 GitHubClient.prototype.updateUser=function(a,b,c){var d=!0,e=window.setTimeout(mxUtils.bind(this,function(){d=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout);mxUtils.get(this.baseUrl+"/user?access_token="+this.token,mxUtils.bind(this,function(g){window.clearTimeout(e);d&&(401===g.getStatus()?c?b({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,b,!0)}),b)):200>g.getStatus()||300<=g.getStatus()?b({message:mxResources.get("accessDenied")}):
 (g=JSON.parse(g.getText()),this.setUser(new DrawioUser(g.id,g.email,g.name)),a()))}))};
-GitHubClient.prototype.authenticate=function(a,b){if(null==window.onGitHubCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open("https://github.com/login/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope,"ghauth")?window.onGitHubCallback=mxUtils.bind(this,function(l,m){if(d)if(window.onGitHubCallback=null,d=!1,null==l)b({message:mxResources.get("accessDenied"),retry:c});else{var n=mxUtils.bind(this,function(){var c=
-!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b({code:App.ERROR_TIMEOUT,retry:n})}),this.ui.timeout);mxUtils.get("/github?client_id="+this.clientId+"&code="+l,mxUtils.bind(this,function(f){window.clearTimeout(d);if(c)try{if(200>f.getStatus()||300<=f.getStatus())b({message:mxResources.get("cannotLogin")});else{null!=g&&g();var h=f.getText();this.token=h.substring(h.indexOf("=")+1,h.indexOf("&"));this.setUser(null);e&&this.setPersistentToken(this.token);a()}}catch(u){b(u)}finally{null!=m&&
-m.close()}}))});n()}else null!=m&&m.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onGitHubCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})};
-GitHubClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout),n=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","token "+n)};a.send(mxUtils.bind(this,function(){window.clearTimeout(m);if(l)if(200<=a.getStatus()&&299>=a.getStatus())b(a);else if(401===a.getStatus())g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,
-function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c);else if(403===a.getStatus()){var f=!1;try{var h=JSON.parse(a.getText());null!=h&&null!=h.errors&&0<h.errors.length&&(f="too_large"==h.errors[0].code)}catch(k){}c({message:mxResources.get(f?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?c({message:mxResources.get("fileNotFound")}):409===a.getStatus()?c({status:409}):c({message:mxResources.get("error")+" "+a.getStatus()})}),c)}),e=mxUtils.bind(this,
+GitHubClient.prototype.authenticate=function(a,b){if(null==window.onGitHubCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open("https://github.com/login/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope,"ghauth")?window.onGitHubCallback=mxUtils.bind(this,function(k,l){if(d)if(window.onGitHubCallback=null,d=!1,null==k)b({message:mxResources.get("accessDenied"),retry:c});else{var m=mxUtils.bind(this,function(){var c=
+!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b({code:App.ERROR_TIMEOUT,retry:m})}),this.ui.timeout);mxUtils.get("/github?client_id="+this.clientId+"&code="+k,mxUtils.bind(this,function(f){window.clearTimeout(d);if(c)try{if(200>f.getStatus()||300<=f.getStatus())b({message:mxResources.get("cannotLogin")});else{null!=g&&g();var h=f.getText();this.token=h.substring(h.indexOf("=")+1,h.indexOf("&"));this.setUser(null);e&&this.setPersistentToken(this.token);a()}}catch(p){b(p)}finally{null!=l&&
+l.close()}}))});m()}else null!=l&&l.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onGitHubCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})};
+GitHubClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout),m=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","token "+m)};a.send(mxUtils.bind(this,function(){window.clearTimeout(l);if(k)if(200<=a.getStatus()&&299>=a.getStatus())b(a);else if(401===a.getStatus())g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,
+function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c);else if(403===a.getStatus()){var f=!1;try{var h=JSON.parse(a.getText());null!=h&&null!=h.errors&&0<h.errors.length&&(f="too_large"==h.errors[0].code)}catch(n){}c({message:mxResources.get(f?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?c({message:mxResources.get("fileNotFound")}):409===a.getStatus()?c({status:409}):c({message:mxResources.get("error")+" "+a.getStatus()})}),c)}),e=mxUtils.bind(this,
 function(a){null==this.user?this.updateUser(function(){e(!0)},c,a):d(a)});null==this.token?this.authenticate(function(){e(!0)},c):e(!1)};GitHubClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!0)};
-GitHubClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;var g=a.split("/"),l=g[0],m=g[1],n=g[2];a=g.slice(3,g.length).join("/");g=/\.png$/i.test(a);!e&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&g)?null!=this.token?(e=this.baseUrl+"/repos/"+l+"/"+m+"/contents/"+a+"?ref="+n+"&token="+this.token,g=a.split("/"),this.ui.convertFile(e,0<g.length?g[g.length-1]:a,null,this.extension,b,c)):c({message:mxResources.get("accessDenied")}):(a=new mxXmlRequest(this.baseUrl+
-"/repos/"+l+"/"+m+"/contents/"+a+"?ref="+n,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.createGitHubFile(l,m,n,JSON.parse(a.getText()),d))}catch(h){c(h)}}),c))};
+GitHubClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;var g=a.split("/"),k=g[0],l=g[1],m=g[2];a=g.slice(3,g.length).join("/");g=/\.png$/i.test(a);!e&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&g)?null!=this.token?(e=this.baseUrl+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+m+"&token="+this.token,g=a.split("/"),this.ui.convertFile(e,0<g.length?g[g.length-1]:a,null,this.extension,b,c)):c({message:mxResources.get("accessDenied")}):(a=new mxXmlRequest(this.baseUrl+
+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+m,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.createGitHubFile(k,l,m,JSON.parse(a.getText()),d))}catch(h){c(h)}}),c))};
 GitHubClient.prototype.createGitHubFile=function(a,b,c,d,e){a={org:a,repo:b,ref:c,name:d.name,path:d.path,sha:d.sha,html_url:d.html_url,download_url:d.download_url};b=d.content;"base64"===d.encoding&&(/\.jpe?g$/i.test(d.name)?b="data:image/jpeg;base64,"+b:/\.gif$/i.test(d.name)?b="data:image/gif;base64,"+b:/\.png$/i.test(d.name)?(d=this.ui.extractGraphModelFromPng(b),b=null!=d&&0<d.length?d:"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,c,d,e){this.insertFile(a,b,c,d,!0,e,!1)};
-GitHubClient.prototype.insertFile=function(a,b,c,d,e,g,l){e=null!=e?e:!1;g=g.split("/");var m=g[0],n=g[1],f=g[2],h=g.slice(3,g.length).join("/");0<h.length&&(h+="/");h+=a;this.checkExists(m+"/"+n+"/"+f+"/"+h,!0,mxUtils.bind(this,function(g,q){g?e?(l||(b=Base64.encode(b)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(m,n,f,h,a,b,q,mxUtils.bind(this,function(a){try{var b=JSON.parse(a.getText());c(this.createGitHubFile(m,n,f,b.content,e))}catch(y){d(y)}}),d)}),d)):c(new GitHubFile(this.ui,
-b,{org:m,repo:n,ref:f,name:a,path:h,sha:q,isNew:!0})):d()}))};GitHubClient.prototype.showCommitDialog=function(a,b,c,d){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();c(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){d()}));this.ui.showDialog(a.container,300,80,!0,!1);a.init()};
-GitHubClient.prototype.writeFile=function(a,b,c,d,e,g,l,m,n){g.length>=this.maxFileSize?n({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"}):(c={path:d,branch:decodeURIComponent(c),message:e,content:g},null!=l&&(c.sha=l),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+b+"/contents/"+d,JSON.stringify(c),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){m(a)}),n))};
+GitHubClient.prototype.insertFile=function(a,b,c,d,e,g,k){e=null!=e?e:!1;g=g.split("/");var l=g[0],m=g[1],f=g[2],h=g.slice(3,g.length).join("/");0<h.length&&(h+="/");h+=a;this.checkExists(l+"/"+m+"/"+f+"/"+h,!0,mxUtils.bind(this,function(g,u){g?e?(k||(b=Base64.encode(b)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(l,m,f,h,a,b,u,mxUtils.bind(this,function(a){try{var b=JSON.parse(a.getText());c(this.createGitHubFile(l,m,f,b.content,e))}catch(y){d(y)}}),d)}),d)):c(new GitHubFile(this.ui,
+b,{org:l,repo:m,ref:f,name:a,path:h,sha:u,isNew:!0})):d()}))};GitHubClient.prototype.showCommitDialog=function(a,b,c,d){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();c(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){d()}));this.ui.showDialog(a.container,300,80,!0,!1);a.init()};
+GitHubClient.prototype.writeFile=function(a,b,c,d,e,g,k,l,m){g.length>=this.maxFileSize?m({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"}):(c={path:d,branch:decodeURIComponent(c),message:e,content:g},null!=k&&(c.sha=k),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+b+"/contents/"+d,JSON.stringify(c),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){l(a)}),m))};
 GitHubClient.prototype.checkExists=function(a,b,c){this.getFile(a,mxUtils.bind(this,function(d){if(b&&null!=d.meta){var e=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){e();c(!0,d.meta.sha)},function(){e();c(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){c(!1)})}),mxUtils.bind(this,function(a){c(!0)}),null,!0)};
-GitHubClient.prototype.saveFile=function(a,b,c){var d=a.meta.org,e=a.meta.repo,g=a.meta.ref,l=a.meta.path;this.showCommitDialog(a.meta.name,null==a.meta.sha||a.meta.isNew,mxUtils.bind(this,function(m){var n=mxUtils.bind(this,function(f,h){this.writeFile(d,e,g,l,m,h,f,mxUtils.bind(this,function(c){delete a.meta.isNew;b(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){null!=a&&409==a.status?(resume=this.ui.spinner.pause(),a=new ErrorDialog(this.ui,mxResources.get("errorSavingFile"),mxResources.get("fileChangedOverwrite"),
-mxResources.get("cancel"),mxUtils.bind(this,function(){c()}),null,mxResources.get("overwrite"),mxUtils.bind(this,function(){resume();this.getFile(d+"/"+e+"/"+g+"/"+l,mxUtils.bind(this,function(a){n(a.meta.sha,h)}),mxUtils.bind(this,function(){n(null,h)}))})),this.ui.showDialog(a.container,340,150,!0,!1),a.init()):c(a)}))});this.ui.useCanvasForExport&&/(\.png)$/i.test(l)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){n(a.meta.sha,b)}),c,this.ui.getCurrentFile()!=a?a.getData():null):n(a.meta.sha,
+GitHubClient.prototype.saveFile=function(a,b,c){var d=a.meta.org,e=a.meta.repo,g=a.meta.ref,k=a.meta.path;this.showCommitDialog(a.meta.name,null==a.meta.sha||a.meta.isNew,mxUtils.bind(this,function(l){var m=mxUtils.bind(this,function(f,h){this.writeFile(d,e,g,k,l,h,f,mxUtils.bind(this,function(c){delete a.meta.isNew;b(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){null!=a&&409==a.status?(resume=this.ui.spinner.pause(),a=new ErrorDialog(this.ui,mxResources.get("externalChanges"),mxResources.get("fileChangedOverwrite"),
+mxResources.get("cancel"),mxUtils.bind(this,function(){c()}),null,mxResources.get("overwrite"),mxUtils.bind(this,function(){resume();this.getFile(d+"/"+e+"/"+g+"/"+k,mxUtils.bind(this,function(a){m(a.meta.sha,h)}),mxUtils.bind(this,function(){m(null,h)}))})),this.ui.showDialog(a.container,340,150,!0,!1),a.init()):c(a)}))});this.ui.useCanvasForExport&&/(\.png)$/i.test(k)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){m(a.meta.sha,b)}),c,this.ui.getCurrentFile()!=a?a.getData():null):m(a.meta.sha,
 Base64.encode(a.getData()))}),mxUtils.bind(this,function(){c()}))};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 c=null,d=null,e=null,g=null,l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="hidden";l.style.height="224px";var m=document.createElement("h3");mxUtils.write(m,mxResources.get(a?"selectFile":"selectFolder"));m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";l.appendChild(m);var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.overflow="auto";n.style.height="194px";
-l.appendChild(n);var f=new CustomDialog(this.ui,l,mxUtils.bind(this,function(){b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+g)}));this.ui.showDialog(f.container,340,270,!0,!0);a&&f.okButton.parentNode.removeChild(f.okButton);var h=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}),k=mxUtils.bind(this,function(a){var b=document.createElement("div");b.style.marginBottom="8px";b.appendChild(h(c+
-"/"+d,mxUtils.bind(this,function(){g=null;A()})));a||(mxUtils.write(b," / "),b.appendChild(h(decodeURIComponent(e),mxUtils.bind(this,function(){g=null;y()}))));if(null!=g&&0<g.length){var f=g.split("/");for(a=0;a<f.length;a++)(function(a){mxUtils.write(b," / ");b.appendChild(h(f[a],mxUtils.bind(this,function(){g=f.slice(0,a+1).join("/");u()})))})(a)}n.appendChild(b)}),q=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?
-(g=e=d=c=null,A()):this.ui.hideDialog()}))}),u=mxUtils.bind(this,function(){var l=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/contents/"+g+"?ref="+encodeURIComponent(e),null,"GET");f.okButton.removeAttribute("disabled");n.innerHTML="";this.ui.spinner.spin(n,mxResources.get("loading"));this.executeRequest(l,mxUtils.bind(this,function(f){k();this.ui.spinner.stop();var l=JSON.parse(f.getText());n.appendChild(h("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,A();else{var a=g.split("/");
-g=a.slice(0,a.length-1).join("/");u()}})));mxUtils.br(n);null==l||0==l.length?mxUtils.write(n,mxResources.get("noFiles")):(f=mxUtils.bind(this,function(f){for(var k=0;k<l.length;k++)mxUtils.bind(this,function(l){f==("dir"==l.type)&&(n.appendChild(h(l.name+("dir"==l.type?"/":""),mxUtils.bind(this,function(){"dir"==l.type?(g=l.path,u()):a&&"file"==l.type&&(this.ui.hideDialog(),b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+l.path))}))),mxUtils.br(n))})(l[k])}),f(!0),a&&f(!1))}),q)}),p=null,v=null,y=mxUtils.bind(this,
-function(a){null==a&&(n.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/branches?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,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 l=mxUtils.bind(this,function(){mxEvent.removeListener(n,
-"scroll",v);y(a+1)});mxEvent.addListener(p,"click",l);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(k(!0),n.appendChild(h("../ [Up]",mxUtils.bind(this,function(){g=null;A()}))),mxUtils.br(n));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a){n.appendChild(h(a.name,mxUtils.bind(this,function(){e=a.name;g="";u()})));mxUtils.br(n)})(b[c]);100==b.length&&(n.appendChild(p),
-v=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&l()},mxEvent.addListener(n,"scroll",v))}}),q)}),A=mxUtils.bind(this,function(a){null==a&&(n.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,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 l=mxUtils.bind(this,function(){mxEvent.removeListener(n,"scroll",v);A(a+1)});mxEvent.addListener(p,"click",l);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(n,mxResources.get("noFiles"));else{1==a&&(n.appendChild(h(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 f=b[1];3>b.length?(c=a,d=f,g=e=null,y()):this.ui.spinner.spin(n,mxResources.get("loading"))&&(b=encodeURIComponent(b.slice(2,b.length).join("/")),this.getFile(a+"/"+f+"/"+b,mxUtils.bind(this,function(a){this.ui.spinner.stop();c=a.meta.org;d=a.meta.repo;e=decodeURIComponent(a.meta.ref);g="";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(n),mxUtils.br(n));for(var f=0;f<b.length;f++)mxUtils.bind(this,function(a){n.appendChild(h(a.full_name,mxUtils.bind(this,function(){c=a.owner.login;d=a.name;e=a.default_branch;g="";u()})));mxUtils.br(n)})(b[f])}100==b.length&&(n.appendChild(p),v=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&l()},mxEvent.addListener(n,"scroll",
-v))}),q)});A()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c;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};
+GitHubClient.prototype.showGitHubDialog=function(a,b){var c=null,d=null,e=null,g=null,k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.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";k.appendChild(l);var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.overflow="auto";m.style.height="194px";
+k.appendChild(m);var f=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+g)}));this.ui.showDialog(f.container,340,270,!0,!0);a&&f.okButton.parentNode.removeChild(f.okButton);var h=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(h(c+
+"/"+d,mxUtils.bind(this,function(){g=null;B()})));a||(mxUtils.write(b," / "),b.appendChild(h(decodeURIComponent(e),mxUtils.bind(this,function(){g=null;y()}))));if(null!=g&&0<g.length){var f=g.split("/");for(a=0;a<f.length;a++)(function(a){mxUtils.write(b," / ");b.appendChild(h(f[a],mxUtils.bind(this,function(){g=f.slice(0,a+1).join("/");p()})))})(a)}m.appendChild(b)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()?
+(g=e=d=c=null,B()):this.ui.hideDialog()}))}),p=mxUtils.bind(this,function(){var k=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/contents/"+g+"?ref="+encodeURIComponent(e),null,"GET");f.okButton.removeAttribute("disabled");m.innerHTML="";this.ui.spinner.spin(m,mxResources.get("loading"));this.executeRequest(k,mxUtils.bind(this,function(f){n();this.ui.spinner.stop();var k=JSON.parse(f.getText());m.appendChild(h("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,B();else{var a=g.split("/");
+g=a.slice(0,a.length-1).join("/");p()}})));mxUtils.br(m);null==k||0==k.length?mxUtils.write(m,mxResources.get("noFiles")):(f=mxUtils.bind(this,function(f){for(var l=0;l<k.length;l++)mxUtils.bind(this,function(k){f==("dir"==k.type)&&(m.appendChild(h(k.name+("dir"==k.type?"/":""),mxUtils.bind(this,function(){"dir"==k.type?(g=k.path,p()):a&&"file"==k.type&&(this.ui.hideDialog(),b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+k.path))}))),mxUtils.br(m))})(k[l])}),f(!0),a&&f(!1))}),u)}),q=null,v=null,y=mxUtils.bind(this,
+function(a){null==a&&(m.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/branches?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=q&&null!=q.parentNode&&q.parentNode.removeChild(q);q=document.createElement("a");q.style.display="block";q.setAttribute("href","javascript:void(0);");mxUtils.write(q,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(m,
+"scroll",v);y(a+1)});mxEvent.addListener(q,"click",k);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(n(!0),m.appendChild(h("../ [Up]",mxUtils.bind(this,function(){g=null;B()}))),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(h(a.name,mxUtils.bind(this,function(){e=a.name;g="";p()})));mxUtils.br(m)})(b[c]);100==b.length&&(m.appendChild(q),
+v=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&k()},mxEvent.addListener(m,"scroll",v))}}),u)}),B=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");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=q&&null!=q.parentNode&&q.parentNode.removeChild(q);q=document.createElement("a");q.style.display="block";q.setAttribute("href","javascript:void(0);");
+mxUtils.write(q,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(m,"scroll",v);B(a+1)});mxEvent.addListener(q,"click",k);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(h(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 f=b[1];3>b.length?(c=a,d=f,g=e=null,y()):this.ui.spinner.spin(m,mxResources.get("loading"))&&(b=encodeURIComponent(b.slice(2,b.length).join("/")),this.getFile(a+"/"+f+"/"+b,mxUtils.bind(this,function(a){this.ui.spinner.stop();c=a.meta.org;d=a.meta.repo;e=decodeURIComponent(a.meta.ref);g="";p()}),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 f=0;f<b.length;f++)mxUtils.bind(this,function(a){m.appendChild(h(a.full_name,mxUtils.bind(this,function(){c=a.owner.login;d=a.name;e=a.default_branch;g="";p()})));mxUtils.br(m)})(b[f])}100==b.length&&(m.appendChild(q),v=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&k()},mxEvent.addListener(m,"scroll",
+v))}),u)});B()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c;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,c){this.doSave(this.getTitle(),b,c)};TrelloFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};TrelloFile.prototype.doSave=function(a,b,c){var d=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=d;this.saveFile(a,!1,b,c)};
-TrelloFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&(this.saveNeededCounter++,d({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});l();this.ui.trello.saveFile(this,mxUtils.bind(this,function(g){this.savingFile=!1;this.isModified=e;this.meta=g;this.contentChanged();null!=c&&c();0<this.saveNeededCounter&&
-(this.saveNeededCounter--,this.saveFile(a,b,c,d))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(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!=c&&c();this.ui.fileLoaded(e);0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,
+TrelloFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&(this.saveNeededCounter++,d({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.trello.saveFile(this,mxUtils.bind(this,function(g){this.savingFile=!1;this.isModified=e;this.meta=g;this.contentChanged();null!=c&&c();0<this.saveNeededCounter&&
+(this.saveNeededCounter--,this.saveFile(a,b,c,d))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){k();b()}}d(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!=c&&c();this.ui.fileLoaded(e);0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a,
 b,c,d))}),mxUtils.bind(this,function(){this.savingFile=!1;null!=d&&d()}),!1,e)}));else null!=c&&c()};TrelloLibrary=function(a,b,c){TrelloFile.call(this,a,b,c)};mxUtils.extend(TrelloLibrary,TrelloFile);TrelloLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};TrelloLibrary.prototype.open=function(){};TrelloClient=function(a){DrawioClient.call(this,a,"tauth");Trello.setKey(this.key)};mxUtils.extend(TrelloClient,DrawioClient);TrelloClient.prototype.key="e73615c79cf7e381aef91c85936e9553";TrelloClient.prototype.baseUrl="https://api.trello.com/1/";TrelloClient.prototype.SEPARATOR="|$|";TrelloClient.prototype.maxFileSize=1E7;TrelloClient.prototype.extension=".xml";
 TrelloClient.prototype.authenticate=function(a,b,c){c&&this.logout();c=mxUtils.bind(this,function(c,e){Trello.authorize({type:"popup",name:"draw.io",scope:{read:"true",write:"true"},expiration:c?"never":"1hour",success:function(){null!=e&&e();a()},error:function(){null!=e&&e();null!=b&&b(mxResources.get("loggedOut"))}})});this.isAuthorized()?c(!0):this.ui.showAuthDialog(this,!0,c)};TrelloClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!1,!0)};
-TrelloClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;var g=mxUtils.bind(this,function(){var d=a.split(this.SEPARATOR),m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);Trello.cards.get(d[0]+"/attachments/"+d[1],mxUtils.bind(this,function(d){window.clearTimeout(n);if(m){var f=/\.png$/i.test(d.name);/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&f?this.ui.convertFile(PROXY_URL+"?url="+
-encodeURIComponent(d.url),d.name,d.mimeType,this.extension,b,c):(m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),this.ui.loadUrl(PROXY_URL+"?url="+encodeURIComponent(d.url),mxUtils.bind(this,function(c){window.clearTimeout(n);if(m){d.compoundId=a;var g=f?c.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(c.substring(g+1)),null!=g&&0<g.length&&(c=g));e?b(new TrelloLibrary(this.ui,c,d)):b(new TrelloFile(this.ui,c,d))}}),mxUtils.bind(this,
-function(a,b){window.clearTimeout(n);m&&(401==b.status?this.authenticate(g,c,!0):c())}),f||null!=d.mimeType&&"image/"==d.mimeType.substring(0,6)))}}),mxUtils.bind(this,function(a){window.clearTimeout(n);m&&(401==a.status?this.authenticate(g,c,!0):c())}))});this.authenticate(g,c)};TrelloClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e)};
-TrelloClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;var l=mxUtils.bind(this,function(){var l=mxUtils.bind(this,function(l){this.writeFile(a,l,g,mxUtils.bind(this,function(a){e?c(new TrelloLibrary(this.ui,b,a)):c(new TrelloFile(this.ui,b,a))}),d)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){l(this.ui.base64ToBlob(a,"image/png"))}),d,b):l(b)});this.authenticate(l,d)};
+TrelloClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;var g=mxUtils.bind(this,function(){var d=a.split(this.SEPARATOR),l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);Trello.cards.get(d[0]+"/attachments/"+d[1],mxUtils.bind(this,function(d){window.clearTimeout(m);if(l){var f=/\.png$/i.test(d.name);/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&f?this.ui.convertFile(PROXY_URL+"?url="+
+encodeURIComponent(d.url),d.name,d.mimeType,this.extension,b,c):(l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),this.ui.loadUrl(PROXY_URL+"?url="+encodeURIComponent(d.url),mxUtils.bind(this,function(c){window.clearTimeout(m);if(l){d.compoundId=a;var g=f?c.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(c.substring(g+1)),null!=g&&0<g.length&&(c=g));e?b(new TrelloLibrary(this.ui,c,d)):b(new TrelloFile(this.ui,c,d))}}),mxUtils.bind(this,
+function(a,b){window.clearTimeout(m);l&&(401==b.status?this.authenticate(g,c,!0):c())}),f||null!=d.mimeType&&"image/"==d.mimeType.substring(0,6)))}}),mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(401==a.status?this.authenticate(g,c,!0):c())}))});this.authenticate(g,c)};TrelloClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e)};
+TrelloClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;var k=mxUtils.bind(this,function(){var k=mxUtils.bind(this,function(k){this.writeFile(a,k,g,mxUtils.bind(this,function(a){e?c(new TrelloLibrary(this.ui,b,a)):c(new TrelloFile(this.ui,b,a))}),d)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(this.ui.base64ToBlob(a,"image/png"))}),d,b):k(b)});this.authenticate(k,d)};
 TrelloClient.prototype.saveFile=function(a,b,c){var d=a.meta.compoundId.split(this.SEPARATOR),e=mxUtils.bind(this,function(e){this.writeFile(a.meta.name,e,d[0],function(a){Trello.del("cards/"+d[0]+"/attachments/"+d[1],mxUtils.bind(this,function(){b(a)}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(g,c,!0):c()}))},c)}),g=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){e(this.ui.base64ToBlob(a,
 "image/png"))}),c,this.ui.getCurrentFile()!=a?a.getData():null):e(a.getData())});this.authenticate(g,c)};
-TrelloClient.prototype.writeFile=function(a,b,c,d,e){if(null!=a&&null!=b)if(b.length>=this.maxFileSize)e({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 10 MB)"});else{var g=mxUtils.bind(this,function(){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;e({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),n=new FormData;n.append("key",Trello.key());n.append("token",Trello.token());n.append("file","string"===typeof b?new Blob([b]):b,a);n.append("name",
-a);var f=new XMLHttpRequest;f.responseType="json";f.onreadystatechange=mxUtils.bind(this,function(){if(4===f.readyState&&(window.clearTimeout(m),l))if(200==f.status){var a=f.response;a.compoundId=c+this.SEPARATOR+a.id;d(a)}else 401==f.status?this.authenticate(g,e,!0):e()});f.open("POST",this.baseUrl+"cards/"+c+"/attachments");f.send(n)});this.authenticate(g,e)}else e({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)};
+TrelloClient.prototype.writeFile=function(a,b,c,d,e){if(null!=a&&null!=b)if(b.length>=this.maxFileSize)e({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 10 MB)"});else{var g=mxUtils.bind(this,function(){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;e({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),m=new FormData;m.append("key",Trello.key());m.append("token",Trello.token());m.append("file","string"===typeof b?new Blob([b]):b,a);m.append("name",
+a);var f=new XMLHttpRequest;f.responseType="json";f.onreadystatechange=mxUtils.bind(this,function(){if(4===f.readyState&&(window.clearTimeout(l),k))if(200==f.status){var a=f.response;a.compoundId=c+this.SEPARATOR+a.id;d(a)}else 401==f.status?this.authenticate(g,e,!0):e()});f.open("POST",this.baseUrl+"cards/"+c+"/attachments");f.send(m)});this.authenticate(g,e)}else e({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)};
 TrelloClient.prototype.pickFolder=function(a){this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!1,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)}))};TrelloClient.prototype.pickFile=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("T"+encodeURIComponent(a))});this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!0,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a,mxResources.get("ok"))}))};
-TrelloClient.prototype.showTrelloDialog=function(a,b){var c=null,d="@me",e=0,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.height="224px";var l=document.createElement("h3");mxUtils.write(l,a?mxResources.get("selectFile"):mxResources.get("selectCard"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(l);var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.overflow="auto";m.style.height=
-"194px";g.appendChild(m);g=new CustomDialog(this.ui,g);this.ui.showDialog(g.container,340,270,!0,!0);g.okButton.parentNode.removeChild(g.okButton);var n=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var g=document.createElement("img");g.src=c.url;g.width=c.width;g.height=
-c.height;g.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(g)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),f=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),h=mxUtils.bind(this,function(){e=0;m.innerHTML="";this.ui.spinner.spin(m,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(c+"/attachments",{fields:"id,name,previews"},
-mxUtils.bind(this,function(a){this.ui.spinner.stop();m.appendChild(n("../ [Up]",mxUtils.bind(this,function(){u()})));mxUtils.br(m);null==a||0==a.length?mxUtils.write(m,mxResources.get("noFiles")):mxUtils.bind(this,function(){for(var d=0;d<a.length;d++)mxUtils.bind(this,function(a){m.appendChild(n(a.name,mxUtils.bind(this,function(){this.ui.hideDialog();b(c+this.SEPARATOR+a.id)}),null!=a.previews?a.previews[0]:null))})(a[d])})()}),mxUtils.bind(this,function(b){401==b.status?this.authenticate(a,f,!0):
-null!=f&&f(b)}))});a()}),k=null,q=null,u=mxUtils.bind(this,function(g){null==g&&(e=0,m.innerHTML="",g=1);this.ui.spinner.spin(m,mxResources.get("loading"));null!=k&&null!=k.parentNode&&k.parentNode.removeChild(k);k=document.createElement("a");k.style.display="block";k.setAttribute("href","javascript:void(0);");mxUtils.write(k,mxResources.get("more")+"...");var l=mxUtils.bind(this,function(){mxEvent.removeListener(m,"scroll",q);u(g+1)});mxEvent.addListener(k,"click",l);var p=mxUtils.bind(this,function(){Trello.get("search",
-{query:""==mxUtils.trim(d)?"is:open":d,cards_limit:100,cards_page:g-1},mxUtils.bind(this,function(e){this.ui.spinner.stop();e=null!=e?e.cards:null;if(null==e||0==e.length)mxUtils.write(m,mxResources.get("noFiles"));else{1==g&&(m.appendChild(n(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,d,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(d=a,u())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards");
-this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(m));for(var f=0;f<e.length;f++)mxUtils.bind(this,function(d){m.appendChild(n(d.name,mxUtils.bind(this,function(){a?(c=d.id,h()):(this.ui.hideDialog(),b(d.id))})))})(e[f]);100==e.length&&(m.appendChild(k),q=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&l()},mxEvent.addListener(m,"scroll",q))}}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(p,f,!0):null!=f&&f({message:a.responseText})}))});p()});u()};
-TrelloClient.prototype.isAuthorized=function(){try{return null!=localStorage.trello_token}catch(a){}return!1};TrelloClient.prototype.logout=function(){localStorage.removeItem("trello_token");Trello.deauthorize()};function ChatWindow(a,b,c,d,e,g,l,m){this.editorUi=a;this.doc=m.doc;this.rtModel=m.rt;this.chatHistory=m.chatHistory;this.chatMap=m.chatMap;this.configCollabInfo();c=document.createElement("div");c.id="mainDiv";m=document.createElement("div");m.style.padding="3px";c.appendChild(m);var n=document.createElement("div");n.style.paddingLeft="3px";n.style.paddingRight="15px";a.editor.graph.isEnabled()&&c.appendChild(n);this.chatArea=document.createElement("div");this.chatArea.style.backgroundColor="white";
-this.chatArea.style.overflowX="hidden";this.chatArea.style.overflowY="auto";this.chatArea.style.width="98%";this.chatArea.style.resize="none";m.appendChild(this.chatArea);this.chatLineArea=document.createElement("textarea");this.chatLineArea.style.resize="none";this.chatLineArea.rows=1;this.chatLineArea.onkeydown=mxUtils.bind(this,function(a){13==(a.keyCode||window.event.keyCode)&&""!=this.chatLineArea.value&&this.sendMessage()});this.sendBtn=document.createElement("button");this.sendBtn.style.cssFloat=
-"right";this.sendBtn.style.styleFloat="right";mxUtils.write(this.sendBtn,mxResources.get("sendMessage"));mxEvent.addListener(this.sendBtn,"click",mxUtils.bind(this,function(a){""!=this.chatLineArea.value&&this.sendMessage()}));n.appendChild(this.chatLineArea);n.appendChild(this.sendBtn);this.window=new mxWindow(b,c,d,e,g,l,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!0);this.window.setScrollable(!0);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
+TrelloClient.prototype.showTrelloDialog=function(a,b){var c=null,d="@me",e=0,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.height="224px";var k=document.createElement("h3");mxUtils.write(k,a?mxResources.get("selectFile"):mxResources.get("selectCard"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(k);var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.height=
+"194px";g.appendChild(l);g=new CustomDialog(this.ui,g);this.ui.showDialog(g.container,340,270,!0,!0);g.okButton.parentNode.removeChild(g.okButton);var m=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var g=document.createElement("img");g.src=c.url;g.width=c.width;g.height=
+c.height;g.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(g)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),f=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),h=mxUtils.bind(this,function(){e=0;l.innerHTML="";this.ui.spinner.spin(l,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(c+"/attachments",{fields:"id,name,previews"},
+mxUtils.bind(this,function(a){this.ui.spinner.stop();l.appendChild(m("../ [Up]",mxUtils.bind(this,function(){p()})));mxUtils.br(l);null==a||0==a.length?mxUtils.write(l,mxResources.get("noFiles")):mxUtils.bind(this,function(){for(var d=0;d<a.length;d++)mxUtils.bind(this,function(a){l.appendChild(m(a.name,mxUtils.bind(this,function(){this.ui.hideDialog();b(c+this.SEPARATOR+a.id)}),null!=a.previews?a.previews[0]:null))})(a[d])})()}),mxUtils.bind(this,function(b){401==b.status?this.authenticate(a,f,!0):
+null!=f&&f(b)}))});a()}),n=null,u=null,p=mxUtils.bind(this,function(g){null==g&&(e=0,l.innerHTML="",g=1);this.ui.spinner.spin(l,mxResources.get("loading"));null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n);n=document.createElement("a");n.style.display="block";n.setAttribute("href","javascript:void(0);");mxUtils.write(n,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(l,"scroll",u);p(g+1)});mxEvent.addListener(n,"click",k);var q=mxUtils.bind(this,function(){Trello.get("search",
+{query:""==mxUtils.trim(d)?"is:open":d,cards_limit:100,cards_page:g-1},mxUtils.bind(this,function(e){this.ui.spinner.stop();e=null!=e?e.cards:null;if(null==e||0==e.length)mxUtils.write(l,mxResources.get("noFiles"));else{1==g&&(l.appendChild(m(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,d,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(d=a,p())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards");
+this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(l));for(var f=0;f<e.length;f++)mxUtils.bind(this,function(d){l.appendChild(m(d.name,mxUtils.bind(this,function(){a?(c=d.id,h()):(this.ui.hideDialog(),b(d.id))})))})(e[f]);100==e.length&&(l.appendChild(n),u=function(){l.scrollTop>=l.scrollHeight-l.offsetHeight&&k()},mxEvent.addListener(l,"scroll",u))}}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(q,f,!0):null!=f&&f({message:a.responseText})}))});q()});p()};
+TrelloClient.prototype.isAuthorized=function(){try{return null!=localStorage.trello_token}catch(a){}return!1};TrelloClient.prototype.logout=function(){localStorage.removeItem("trello_token");Trello.deauthorize()};function ChatWindow(a,b,c,d,e,g,k,l){this.editorUi=a;this.doc=l.doc;this.rtModel=l.rt;this.chatHistory=l.chatHistory;this.chatMap=l.chatMap;this.configCollabInfo();c=document.createElement("div");c.id="mainDiv";l=document.createElement("div");l.style.padding="3px";c.appendChild(l);var m=document.createElement("div");m.style.paddingLeft="3px";m.style.paddingRight="15px";a.editor.graph.isEnabled()&&c.appendChild(m);this.chatArea=document.createElement("div");this.chatArea.style.backgroundColor="white";
+this.chatArea.style.overflowX="hidden";this.chatArea.style.overflowY="auto";this.chatArea.style.width="98%";this.chatArea.style.resize="none";l.appendChild(this.chatArea);this.chatLineArea=document.createElement("textarea");this.chatLineArea.style.resize="none";this.chatLineArea.rows=1;this.chatLineArea.onkeydown=mxUtils.bind(this,function(a){13==(a.keyCode||window.event.keyCode)&&""!=this.chatLineArea.value&&this.sendMessage()});this.sendBtn=document.createElement("button");this.sendBtn.style.cssFloat=
+"right";this.sendBtn.style.styleFloat="right";mxUtils.write(this.sendBtn,mxResources.get("sendMessage"));mxEvent.addListener(this.sendBtn,"click",mxUtils.bind(this,function(a){""!=this.chatLineArea.value&&this.sendMessage()}));m.appendChild(this.chatLineArea);m.appendChild(this.sendBtn);this.window=new mxWindow(b,c,d,e,g,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!0);this.window.setScrollable(!0);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
 this.handleResize();this.window.addListener(mxEvent.RESIZE,mxUtils.bind(this,this.handleResize));this.window.addListener(mxEvent.MAXIMIZE,mxUtils.bind(this,this.handleResize));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,this.handleResize));if(null!=this.chatHistory){for(a=Math.max(0,this.chatHistory.length-this.chatHistoryShow);a<this.chatHistory.length;a++)this.updateChatArea(this.chatHistory.get(a));this.chatHistory.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED,mxUtils.bind(this,
 function(a){this.updateChatArea(a.target.get(a.index))}))}this.doc.addEventListener(gapi.drive.realtime.EventType.COLLABORATOR_JOINED,mxUtils.bind(this,this.collaboratorListener));this.doc.addEventListener(gapi.drive.realtime.EventType.COLLABORATOR_LEFT,mxUtils.bind(this,this.collaboratorListener));null!=this.chatMap&&this.chatMap.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,mxUtils.bind(this,function(a){this.updateChatArea(a.target.get(a.property))}))}
 ChatWindow.prototype.window=null;ChatWindow.prototype.doc=null;ChatWindow.prototype.chatHistory=null;ChatWindow.prototype.chatMap=null;ChatWindow.prototype.chatHistoryShow=10;ChatWindow.prototype.chatHistorySize=0;ChatWindow.prototype.setChatMap=function(a){this.chatMap=a};
@@ -8213,9 +8246,10 @@ ChatWindow.prototype.updateChatArea=function(a){a='<span style="color : '+a.coll
 ChatWindow.prototype.handleResize=function(){var a=this.window.getElement(),b=this.editorUi.editor.graph.isEnabled()?70:40;this.chatArea.style.height=Math.max(0,a.offsetHeight-b)+"px";this.chatLineArea.style.width=a.offsetWidth-this.sendBtn.offsetWidth-40+"px"};
 ChatWindow.prototype.collaboratorListener=function(a){if(!a.collaborator.isMe){if(a.type==gapi.drive.realtime.EventType.COLLABORATOR_JOINED)a='<span style="color : '+a.collaborator.color+';">&#x25B2</span><i>'+mxResources.get("chatJoined",[a.collaborator.displayName])+"</i>";else if(a.type==gapi.drive.realtime.EventType.COLLABORATOR_LEFT)a='<span style="color : '+a.collaborator.color+';">&#x25BC</span><i>'+mxResources.get("chatLeft",[a.collaborator.displayName])+"</i>";else return;this.chatArea.innerHTML=
 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 c=a[b];c.isMe&&(this.collabColor=c.color,this.displayName=c.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,c){EditorUi.call(this,a,b,null!=c?c:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);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,c){var d=null;try{d=window.open(a)}catch(m){}null==d||void 0===d?this.showDialog((new PopupDialog(this,a,b,c)).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.editor.chromeless&&!this.editor.editable||this.addFileDropHandler([document]);if(null!=
+(new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(a,b,c){var d=null;try{d=window.open(a)}catch(l){}null==d||void 0===d?this.showDialog((new PopupDialog(this,a,b,c)).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.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(d){null!=window.console&&console.log("Plugin Error:",d,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="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.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.GOOGLE_REALTIME="0"!=urlParams["google-realtime"];
+App.GOOGLE_APIS="client,drive-share"+(App.GOOGLE_REALTIME?",drive-realtime":"");
 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",f5:"/plugins/rackF5.js",tickets:"/plugins/tickets.js",flow:"/plugins/flow.js",webcola:"/plugins/webcola/webcola.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(";"),c=0;c<b.length;c++){var d=mxUtils.trim(b[c]);if("MODE="==d.substring(0,5)){a=d.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};
@@ -8228,12 +8262,12 @@ null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db
 null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==
 urlParams.tr)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL,function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=a&&a(c);"0"!=urlParams.chrome&&"1"==urlParams.test&&(mxLog.show(),mxLog.debug("Started in "+((new Date).getTime()-t0.getTime())+"ms"),mxLog.debug("Export:",EXPORT_URL),mxLog.debug("Development mode:","1"==urlParams.dev?"active":"inactive"),mxLog.debug("Test mode:",
 "1"==urlParams.test?"active":"inactive"))},function(a){document.getElementById("geStatus").innerHTML='Error loading page. <a href="javascript:void(0);">Please try refreshing.</a>';document.getElementById("geStatus").getElementsByTagName("a")[0].onclick=function(){mxLanguage="en";c(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}})}function d(){mxResources.loadDefaultBundle=!1;c(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||
-mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var e=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=e&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){e=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!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(x){}});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 g=document.createElement("iframe");
-g.setAttribute("width","0");g.setAttribute("height","0");g.setAttribute("src","offline.html");document.body.appendChild(g)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var g=null!=mxSettings.settings?mxSettings.getPlugins():null,l={},m=urlParams.p;App.initPluginCallback();if(null!=m){var n="";"1"==urlParams.drawdev&&(n=document.location.protocol+"//drawhost.jgraph.com/");for(var f=m.split(";"),m=0;m<f.length;m++){var h=App.pluginRegistry[f[m]];null!=h&&null==l[h]?(l[h]=!0,mxscript(n+h)):null!=
-window.console&&console.log("Unknown plugin:",f[m])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=g&&0<g.length&&"0"!=urlParams.plugins){n=window.location.protocol+"//"+window.location.host;f=!0;for(m=0;m<g.length&&f;m++)"/"!=g[m].charAt(0)&&g[m].substring(0,n.length)!=n&&(f=!1);if(f||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",
-[g.join("\n")]).replace(/\\n/g,"\n")))for(m=0;m<g.length;m++)try{null==l[g[m]]&&(l[h]=!0,mxscript(g[m]))}catch(u){}}}"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();if("1"==urlParams.configure){var k=window.opener||window.parent,q=function(a){if(a.source==k)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",q),Editor.configure(b.config,!0),mxSettings.load(),d())}catch(v){null!=window.console&&console.log("Error in configuration: "+v)}};mxEvent.addListener(window,"message",q);k.postMessage(JSON.stringify({event:"load"}),"*")}else d()};mxUtils.extend(App,EditorUi);
+mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var e=Editor.guid(),g=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=g&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){g=a;var h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",k=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=
+k+"/log?severity="+h+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")+"&sid="+e}}catch(C){}});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 k=document.createElement("iframe");
+k.setAttribute("width","0");k.setAttribute("height","0");k.setAttribute("src","offline.html");document.body.appendChild(k)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var k=null!=mxSettings.settings?mxSettings.getPlugins():null,l={},m=urlParams.p;App.initPluginCallback();if(null!=m){var f="";"1"==urlParams.drawdev&&(f=document.location.protocol+"//drawhost.jgraph.com/");for(var h=m.split(";"),m=0;m<h.length;m++){var n=App.pluginRegistry[h[m]];null!=n&&null==l[n]?(l[n]=!0,mxscript(f+n)):null!=
+window.console&&console.log("Unknown plugin:",h[m])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=k&&0<k.length&&"0"!=urlParams.plugins){f=window.location.protocol+"//"+window.location.host;h=!0;for(m=0;m<k.length&&h;m++)"/"!=k[m].charAt(0)&&k[m].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",
+[k.join("\n")]).replace(/\\n/g,"\n")))for(m=0;m<k.length;m++)try{null==l[k[m]]&&(l[n]=!0,mxscript(k[m]))}catch(q){}}}"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();if("1"==urlParams.configure){var u=window.opener||window.parent,p=function(a){if(a.source==u)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",p),Editor.configure(b.config,!0),mxSettings.load(),d())}catch(y){null!=window.console&&console.log("Error in configuration: "+y)}};mxEvent.addListener(window,"message",p);u.postMessage(JSON.stringify({event:"load"}),"*")}else d()};mxUtils.extend(App,EditorUi);
 App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=30";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg==";
 App.prototype.chevronUpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUY1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NjA1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1RDUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1RTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg+qUokAAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAAL0lEQVR42mJgRgMMRAswMKAKMDDARBjg8lARBoR6KImkH0wTbygT6YaS4DmAAAMAYPkClOEDDD0AAAAASUVORK5CYII=":
 IMAGE_PATH+"/chevron-up.png";
@@ -8247,43 +8281,45 @@ App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);this
 if("1"!=urlParams.embed||"1"==urlParams.od){var a=mxUtils.bind(this,function(){"undefined"!==typeof OneDrive?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=a)});a()}if("1"!=urlParams.embed||"1"==urlParams.tr){var b=mxUtils.bind(this,function(){"undefined"!==
 typeof window.Trello?(this.trello=new TrelloClient(this),this.trello.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.trello))):null==window.DrawTrelloClientCallback&&(window.DrawTrelloClientCallback=b)});b()}if("1"!=urlParams.embed||"1"==urlParams.gapi){var c=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this);
 "420247213240"==this.drive.appId&&this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile&&(a=document.getElementById("geFooterItem2"),null!=a&&(a.innerHTML='<a href="https://support.draw.io/display/DO/2014/11/27/Switching+application+in+Google+Drive" target="_blank" title="IMPORTANT NOTICE" >IMPORTANT NOTICE</a>'))}));this.drive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries();
-this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(b){null!=gapi.drive&&null!=gapi.drive.realtime&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null==
-window.DrawGapiClientCallback&&(window.DrawGapiClientCallback=c)});c()}if("1"!=urlParams.embed||"1"==urlParams.db){var d=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&&
-(window.DrawDropboxClientCallback=d)});d()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();
-null!=this.menubar&&(this.buttonContainer=document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",
-IMAGE_PATH+"/logo-flat-small.png"),this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))};
+this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(b){null!=gapi.client&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null==window.DrawGapiClientCallback&&
+(window.DrawGapiClientCallback=c)});c()}if("1"!=urlParams.embed||"1"==urlParams.db){var d=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&&(window.DrawDropboxClientCallback=
+d)});d()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();null!=this.menubar&&(this.buttonContainer=
+document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",IMAGE_PATH+"/logo-flat-small.png"),
+this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))};
 App.prototype.isDriveDomain=function(){return"0"!=urlParams.drive&&("test.draw.io"==window.location.hostname||"cdn.draw.io"==window.location.hostname||"www.draw.io"==window.location.hostname||"drive.draw.io"==window.location.hostname||"jgraph.github.io"==window.location.hostname)};App.prototype.isLegacyDriveDomain=function(){return 0==urlParams.drive||"legacy.draw.io"==window.location.hostname};
 App.prototype.checkLicense=function(){var a=this.drive.getUser(),b=("1"==urlParams.dev?urlParams.lic:null)||(null!=a?a.email:null);if(!this.isOffline()&&!this.editor.chromeless&&null!=b){var c=b.lastIndexOf("@"),d=b;0<=c&&(d=b.substring(c+1),b=this.crc32(b.substring(0,c))+"@"+d);mxUtils.post("/license","domain="+encodeURIComponent(d)+"&email="+encodeURIComponent(b)+"&ds="+encodeURIComponent(a.displayName)+"&lc="+encodeURIComponent(a.locale)+"&ts="+(new Date).getTime(),mxUtils.bind(this,function(a){try{if(200<=
-a.getStatus()&&299>=a.getStatus()){var b=a.getText();if(0<b.length){var c=JSON.parse(b);null!=c&&this.handleLicense(c,d)}}}catch(m){}}))}};
-App.prototype.handleLicense=function(a,b){var c=document.getElementById("geFooter"),d=null;if(null!=c&&null!=a)if(d=a.expiry,null!=a.footer)c.innerHTML=decodeURIComponent(a.footer);else if(this.hideFooter(),null!=d&&"never"!=d){var e=new Date(Date.parse(d)),g=Math.round((e-Date.now())/864E5);if(90>g){var l="https://support.draw.io/display/DKB/draw.io+footer+state+that+license+is+expiring+on+Google+For+Work+account?domain="+encodeURIComponent(b);c.style.height="100%";c.style.margin="0px";c.style.display=
-"";0>g?(this.footerHeight=80,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert geBlink"><a href="'+l+'" style="padding-top:16px;" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseHasExpired",[b,e.toLocaleDateString()])+"</a></td></tr></table>"):(this.footerHeight=46,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert"><a href="'+
-l+'" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseWillExpire",[b,e.toLocaleDateString()])+"</a></td></tr></table>");this.refresh()}}return d};App.prototype.getEditBlankXml=function(){var a=this.getCurrentFile();return null!=a&&this.editor.isChromelessView()&&this.editor.graph.isLightboxView()&&null==a.realtime?a.getData():this.getFileData(!0)};
+a.getStatus()&&299>=a.getStatus()){var b=a.getText();if(0<b.length){var c=JSON.parse(b);null!=c&&this.handleLicense(c,d)}}}catch(l){}}))}};
+App.prototype.handleLicense=function(a,b){var c=document.getElementById("geFooter"),d=null;if(null!=c&&null!=a)if(d=a.expiry,null!=a.footer)c.innerHTML=decodeURIComponent(a.footer);else if(this.hideFooter(),null!=d&&"never"!=d){var e=new Date(Date.parse(d)),g=Math.round((e-Date.now())/864E5);if(90>g){var k="https://support.draw.io/display/DKB/draw.io+footer+state+that+license+is+expiring+on+Google+For+Work+account?domain="+encodeURIComponent(b);c.style.height="100%";c.style.margin="0px";c.style.display=
+"";0>g?(this.footerHeight=80,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert geBlink"><a href="'+k+'" style="padding-top:16px;" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseHasExpired",[b,e.toLocaleDateString()])+"</a></td></tr></table>"):(this.footerHeight=46,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert"><a href="'+
+k+'" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseWillExpire",[b,e.toLocaleDateString()])+"</a></td></tr></table>");this.refresh()}}return d};App.prototype.getEditBlankXml=function(){var a=this.getCurrentFile();return null!=a&&this.editor.isChromelessView()&&this.editor.graph.isLightboxView()&&null==a.realtime?a.getData():this.getFileData(!0)};
 App.prototype.updateActionStates=function(){EditorUi.prototype.updateActionStates.apply(this,arguments);var a=this.getCurrentFile();this.actions.get("revisionHistory").setEnabled(null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile))};App.prototype.updateDraft=function(){isLocalStorage&&null!=localStorage&&localStorage.setItem(".draft",JSON.stringify({modified:(new Date).getTime(),data:this.getFileData()}))};App.prototype.getDraft=function(){return null};
 App.prototype.addRecent=function(a){if(isLocalStorage&&null!=localStorage){var b=this.getRecent();if(null==b)b=[];else for(var c=0;c<b.length;c++)b[c].id==a.id&&b.splice(c,1);null!=b&&(b.unshift(a),b=b.slice(0,5),localStorage.setItem(".recent",JSON.stringify(b)))}};App.prototype.getRecent=function(){if(isLocalStorage&&null!=localStorage){try{var a=localStorage.getItem(".recent");if(null!=a)return JSON.parse(a)}catch(b){}return null}};
 App.prototype.resetRecent=function(a){if(isLocalStorage&&null!=localStorage)try{localStorage.removeItem(".recent")}catch(b){}};App.prototype.removeDraft=function(){if(isLocalStorage&&null!=localStorage&&"0"==urlParams.splash)try{localStorage.removeItem(".draft")}catch(a){}};
 App.prototype.onBeforeUnload=function(){if("1"==urlParams.embed&&this.editor.modified)return mxResources.get("allChangesLost");var a=this.getCurrentFile();if(null!=a)if(a.constructor!=LocalFile||""!=a.getHash()||a.isModified()||"1"==urlParams.nowarn||this.isDiagramEmpty()||null!=urlParams.url||this.editor.isChromelessView()){if((a.constructor!=DriveFile||null==a.realtime||a.realtime.saving)&&a.isModified())return mxResources.get("allChangesLost");a.close(!0)}else return mxResources.get("ensureDataSaved")};
 App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxView()){var a=this.editor.appName,b=this.getCurrentFile();this.isOfflineApp()&&(a+=" app");null!=b&&(a=(null!=b.getTitle()?b.getTitle():this.defaultFilename)+" - "+a);document.title=a}};App.prototype.createCrcTable=function(){for(var a=[],b,c=0;256>c;c++){b=c;for(var d=0;8>d;d++)b=b&1?3988292384^b>>>1:b>>>1;a[c]=b}return a};
 App.prototype.getThumbnail=function(a,b){var c=!1;try{null==this.thumbImageCache&&(this.thumbImageCache={});var d=this.editor.graph;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)}if(mxClient.IS_CHROMEAPP||!d.mathEnabled&&this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this,
-function(a){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(a)}),a,this.thumbImageCache,"#ffffff",function(){b()},null,null,null,null,null,null,d),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var l=document.createElement("canvas"),m=d.getGraphBounds(),n=a/m.width,n=Math.min(1,Math.min(3*a/(4*m.height),n)),f=Math.floor(m.x),h=Math.floor(m.y);l.setAttribute("width",Math.ceil(n*(m.width+4)));l.setAttribute("height",Math.ceil(n*(m.height+4)));var k=l.getContext("2d");
-k.scale(n,n);k.translate(-f,-h);var q=d.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";k.save();k.fillStyle=q;k.fillRect(f,h,Math.ceil(m.width+4),Math.ceil(m.height+4));k.restore();var u=new mxJsCanvas(l),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(d.getView().getState(d.model.root),p);p.finish(mxUtils.bind(this,function(){v.drawState(d.getView().getState(d.model.root),u);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(l)}));c=!0}}catch(y){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}return c};
+function(a){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(a)}),a,this.thumbImageCache,"#ffffff",function(){b()},null,null,null,null,null,null,d),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var k=document.createElement("canvas"),l=d.getGraphBounds(),m=a/l.width,m=Math.min(1,Math.min(3*a/(4*l.height),m)),f=Math.floor(l.x),h=Math.floor(l.y);k.setAttribute("width",Math.ceil(m*(l.width+4)));k.setAttribute("height",Math.ceil(m*(l.height+4)));var n=k.getContext("2d");
+n.scale(m,m);n.translate(-f,-h);var u=d.background;if(null==u||""==u||u==mxConstants.NONE)u="#ffffff";n.save();n.fillStyle=u;n.fillRect(f,h,Math.ceil(l.width+4),Math.ceil(l.height+4));n.restore();var p=new mxJsCanvas(k),q=new mxAsyncCanvas(this.thumbImageCache);p.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(d.getView().getState(d.model.root),q);q.finish(mxUtils.bind(this,function(){v.drawState(d.getView().getState(d.model.root),p);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(k)}));c=!0}}catch(y){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}return c};
 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,c){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(c)if(isLocalStorage)localStorage.setItem(".mode",b);else if("undefined"!=typeof Storage){var d=new Date;d.setYear(d.getFullYear()+1);document.cookie="MODE="+b+"; expires="+d.toUTCString()}null!=this.appIcon&&(d=this.getCurrentFile(),b=null!=d?d.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"))}})();
-App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var b=this.getCurrentFile(),c=null!=b?b.getMode():null;c==App.MODE_GOOGLE?null!=b.desc&&0<b.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+b.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):c==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):c==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):c==App.MODE_TRELLO?this.openLink("https://trello.com/"):
-c==App.MODE_GITHUB&&(null!=b&&b.constructor==GitHubFile?this.openLink(b.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}};App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a};
+App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var b=this.getCurrentFile(),c=null!=b?b.getMode():null;c==App.MODE_GOOGLE?null!=b.desc&&null!=b.desc.parents&&0<b.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+b.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):c==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):c==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):c==App.MODE_TRELLO?
+this.openLink("https://trello.com/"):c==App.MODE_GITHUB&&(null!=b&&b.constructor==GitHubFile?this.openLink(b.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}};
+App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a};
 App.prototype.open=function(){try{if(null!=window.opener){var a=urlParams.create;null!=a&&(a=decodeURIComponent(a));if(null!=a&&0<a.length&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)){var b=mxUtils.parseXml(window.opener[a]);this.editor.setGraphXml(b.documentElement)}else null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b,e){this.spinner.stop();null==b&&(b=urlParams.title,e=!0,b=null!=b?decodeURIComponent(b):this.defaultFilename);0<(this.useCanvasForExport?
 -1:".png"==b.substring(b.length-4))&&(b=b.substring(0,b.length-4)+".xml");this.fileLoaded(mxClient.IS_IOS?new StorageFile(this,a,b):new LocalFile(this,a,b,e))}))}}catch(c){}};
-App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(b){null==gapi.drive||null==gapi.drive.realtime?(this.drive=this.mode=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.drive=this.mode=null);a()}))}))}))};
+App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(b){null==gapi.client?(this.mode=this.drive=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.mode=this.drive=null);a()}))}))}))};
 App.prototype.load=function(){if("1"!=urlParams.embed){if(this.spinner.spin(document.body,mxResources.get("starting"))){try{this.stateArg=null!=urlParams.state&&null!=this.drive?JSON.parse(decodeURIComponent(urlParams.state)):null}catch(a){}this.editor.graph.setEnabled(null!=this.getCurrentFile());null!=window.location.hash&&0!=window.location.hash.length||null==this.drive||null==this.stateArg||null==this.stateArg.userId||this.drive.setUserId(this.stateArg.userId);null!=urlParams.fileId?(window.location.hash=
 "G"+urlParams.fileId,window.location.search=this.getSearch(["fileId"])):null==this.drive?(this.mode==App.MODE_GOOGLE&&(this.mode=null),this.start()):this.loadGapi(mxUtils.bind(this,function(){this.start()}))}}else this.restoreLibraries(),"1"==urlParams.gapi&&this.loadGapi(function(){})};
+App.prototype.showRefreshDialog=function(a,b){this.showingRefreshDialog||(this.showingRefreshDialog=!0,this.showError(a||mxResources.get("error"),b||mxResources.get("redirectToNewApp"),mxResources.get("refresh"),mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("connecting"));this.editor.graph.setEnabled(!1);window.location.reload()})))};
 App.prototype.showAlert=function(a){if(null!=a&&0<a.length){var b=document.createElement("div");b.className="geAlert";b.style.zIndex=2E9;b.style.left="50%";b.style.top="-100%";mxUtils.setPrefixedStyle(b.style,"transform","translate(-50%,0%)");mxUtils.setPrefixedStyle(b.style,"transition","all 1s ease");b.innerHTML=a;a=document.createElement("a");a.className="geAlertLink";a.style.textAlign="right";a.style.marginTop="20px";a.style.display="block";a.setAttribute("href","javascript:void(0);");a.setAttribute("title",
 mxResources.get("close"));a.innerHTML=mxResources.get("close");b.appendChild(a);mxEvent.addListener(a,"click",function(a){null!=b.parentNode&&(b.parentNode.removeChild(b),mxEvent.consume(a))});document.body.appendChild(b);window.setTimeout(function(){b.style.top="30px"},10);window.setTimeout(function(){mxUtils.setPrefixedStyle(b.style,"transition","all 2s ease");b.style.opacity="0";window.setTimeout(function(){null!=b.parentNode&&b.parentNode.removeChild(b)},2E3)},15E3)}};
-App.prototype.start=function(){this.bg.parentNode.removeChild(this.bg);this.restoreLibraries();this.spinner.stop();try{if("1"!=urlParams.client&&"1"!=urlParams.embed&&mxEvent.addListener(window,"hashchange",mxUtils.bind(this,function(a){try{var b=this.getDiagramId(),c=this.getCurrentFile();null!=c&&c.getHash()==b||this.loadFile(b,!0)}catch(m){null!=document.body&&this.handleError(m,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=
+App.prototype.start=function(){this.bg.parentNode.removeChild(this.bg);this.restoreLibraries();this.spinner.stop();try{if("1"!=urlParams.client&&"1"!=urlParams.embed&&mxEvent.addListener(window,"hashchange",mxUtils.bind(this,function(a){try{var b=this.getDiagramId(),c=this.getCurrentFile();null!=c&&c.getHash()==b||this.loadFile(b,!0)}catch(l){null!=document.body&&this.handleError(l,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=
 a?a.getHash():""}))}})),(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.url)this.loadFile("U"+urlParams.url,!0);else if(null==this.getCurrentFile()){var a=mxUtils.bind(this,function(){if("1"==urlParams.client&&(null==window.location.hash||0==window.location.hash.length||"#P"==window.location.hash.substring(0,2))){var a=mxUtils.bind(this,function(a){"data:image/png;base64,"==a.substring(0,22)&&(a=this.extractGraphModelFromPng(a));var b=urlParams.title,b=null!=b?decodeURIComponent(b):
 this.defaultFilename;a=new LocalFile(this,a,b,!0);null!=window.location.hash&&"#P"==window.location.hash.substring(0,2)&&(a.getHash=function(){return window.location.hash.substring(1)});this.fileLoaded(a);this.getCurrentFile().setModified(!this.editor.chromeless)}),b=window.opener||window.parent;if(b!=window){var c=urlParams.create;null!=c?a(b[decodeURIComponent(c)]):(c=urlParams.data,null!=c?a(decodeURIComponent(c)):this.installMessageHandler(mxUtils.bind(this,function(c,d){d.source==b&&a(c)})))}}else if(null==
-this.dialog)if("1"==urlParams.demo)c=Editor.useLocalStorage,this.createFile(this.defaultFilename,null,null,null,null,null,null,!0),Editor.useLocalStorage=c;else{c=!1;try{c=null!=window.opener&&null!=window.opener.openFile}catch(f){}if(c)this.spinner.spin(document.body,mxResources.get("loading"));else if(c=this.getDiagramId(),"0"!=urlParams.splash||null!=c&&0!=c.length)this.loadFile(c);else if(!mxClient.IS_CHROMEAPP){var d=this.getDraft(),n=null!=d?d.data:this.getFileData(),c=Editor.useLocalStorage;
-this.createFile(this.defaultFilename,n,null,null,null,null,null,!0);Editor.useLocalStorage=c;null!=d&&(c=this.getCurrentFile(),null!=c&&c.addUnsavedStatus())}}});null!=this.drive&&this.defineCustomObjects();var b=decodeURIComponent(urlParams.create||"");if((null==window.location.hash||1>=window.location.hash.length)&&null!=b&&0<b.length&&this.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("reconnecting"))&&
+this.dialog)if("1"==urlParams.demo)c=Editor.useLocalStorage,this.createFile(this.defaultFilename,null,null,null,null,null,null,!0),Editor.useLocalStorage=c;else{c=!1;try{c=null!=window.opener&&null!=window.opener.openFile}catch(f){}if(c)this.spinner.spin(document.body,mxResources.get("loading"));else if(c=this.getDiagramId(),"0"!=urlParams.splash||null!=c&&0!=c.length)this.loadFile(c);else if(!mxClient.IS_CHROMEAPP){var d=this.getDraft(),m=null!=d?d.data:this.getFileData(),c=Editor.useLocalStorage;
+this.createFile(this.defaultFilename,m,null,null,null,null,null,!0);Editor.useLocalStorage=c;null!=d&&(c=this.getCurrentFile(),null!=c&&c.addUnsavedStatus())}}});null!=this.drive&&this.defineCustomObjects();var b=decodeURIComponent(urlParams.create||"");if((null==window.location.hash||1>=window.location.hash.length)&&null!=b&&0<b.length&&this.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("reconnecting"))&&
 (window.location.search=this.getSearch(["create","title"]))}),d=mxUtils.bind(this,function(a){this.spinner.stop();if("0"!=urlParams.splash){this.fileLoaded(new LocalFile(this,a,null));this.editor.graph.setEnabled(!1);this.mode=urlParams.mode;var b=urlParams.title,b=null!=b?decodeURIComponent(b):this.defaultFilename;a=this.getServiceCount(!0);var c=4>=a?4:3,b=new CreateDialog(this,b,mxUtils.bind(this,function(a,b){if(null==b){this.hideDialog();var c=Editor.useLocalStorage;this.createFile(0<a.length?
 a:this.defaultFilename,this.getFileData(),null,null,null,!0,null,!0);Editor.useLocalStorage=c}else this.pickFolder(b,mxUtils.bind(this,function(c){this.createFile(a,this.getFileData(!0),null,b,null,!0,c)}))}),null,null,null,null,"1"==urlParams.browser,null,null,!0,c);this.showDialog(b.container,380,a>c?390:270,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));b.init()}}),b=decodeURIComponent(b);if("http://"!=b.substring(0,7)&&"https://"!=b.substring(0,8))try{null!=
 window.opener&&null!=window.opener[b]?d(window.opener[b]):this.handleError(null,mxResources.get("errorLoadingFile"))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}else this.loadTemplate(b,function(a){d(a)},mxUtils.bind(this,function(){this.handleError(null,mxResources.get("errorLoadingFile"),c)}))}else(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.state&&null!=this.stateArg&&"open"==this.stateArg.action&&null!=this.stateArg.ids&&(window.location.hash=
@@ -8299,28 +8335,28 @@ gapi.drive.realtime.custom.collaborativeField("children"),mxRtCell.prototype.sou
 App.prototype.pickFile=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE)null!=this.drive&&"undefined"!=typeof google&&"undefined"!=typeof google.picker?this.drive.pickFile():this.openLink("https://drive.google.com");else{var b=this.getPeerForMode(a);if(null!=b)b.pickFile();else if(a==App.MODE_DEVICE&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,
 "change",mxUtils.bind(this,function(){null!=c.files&&this.openFiles(c.files)}));c.click()}else{this.hideDialog();window.openNew=null!=this.getCurrentFile()&&!this.isDiagramEmpty();window.baseUrl=this.getUrl();window.openKey="open";var d=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;this.openFile();window.openFile.setConsumer(mxUtils.bind(this,function(b,c){this.useCanvasForExport||".png"!=c.substring(c.length-4)||(c=c.substring(0,c.length-4)+".xml");this.fileLoaded(a==App.MODE_BROWSER?
 new StorageFile(this,b,c):new LocalFile(this,b,c))}));var e=this.dialog,g=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;g.apply(e,arguments);null==this.getCurrentFile()&&this.showSplash()})}}};
-App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE||a==App.MODE_GITHUB||a==App.MODE_TRELLO){var b=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_TRELLO?this.trello:this.dropbox;null!=b&&b.pickLibrary(mxUtils.bind(this,function(a,c){if(null!=c)try{this.loadLibrary(c)}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}else this.spinner.spin(document.body,
-mxResources.get("loading"))&&b.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(m){this.handleError(m,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a!=App.MODE_DEVICE||!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11){window.openNew=!1;window.openKey="open";var c=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile=
-new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=c;window.openFile=null})}else{var d=document.createElement("input");
-d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){if(null!=d.files)for(var a=0;a<d.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(n){this.handleError(n,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(d.files[a])}));d.click()}};
-App.prototype.saveLibrary=function(a,b,c,d,e,g,l){d=null!=d?d:this.mode;e=null!=e?e:!1;g=null!=g?g:!1;var m=this.createLibraryDataFromImages(b),n=mxUtils.bind(this,function(a){this.spinner.stop();null!=l&&l();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==c&&d==App.MODE_DEVICE&&(c=new LocalLibrary(this,m,a));if(null==c)this.pickFolder(d,mxUtils.bind(this,function(c){d==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a,
-m,c,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,this.drive.libraryMimeType):d==App.MODE_GITHUB&&null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.gitHub.insertLibrary(a,m,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_TRELLO&&null!=this.trello&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.trello.insertLibrary(a,m,mxUtils.bind(this,
-function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,m,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,m,mxUtils.bind(this,function(a){this.spinner.stop();
-this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_BROWSER?(c=mxUtils.bind(this,function(){var c=new StorageLibrary(this,m,a);c.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(c,b)}),n)}),null==localStorage.getItem(a)?c():this.confirm(mxResources.get("replaceIt",[a]),c)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(e||this.spinner.spin(document.body,mxResources.get("saving"))){c.setData(m);var f=mxUtils.bind(this,
-function(){c.save(!0,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);g||this.libraryLoaded(c,b);null!=l&&l()}),n)});if(a!=c.getTitle()){var h=c.getHash();c.rename(a,mxUtils.bind(this,function(a){c.constructor!=LocalLibrary&&h!=c.getHash()&&(mxSettings.removeCustomLibrary(h),mxSettings.addCustomLibrary(c.getHash()));this.removeLibrarySidebar(h);f()}),n)}else f()}};
-App.prototype.saveFile=function(a){var b=this.getCurrentFile();if(null!=b){var c=mxUtils.bind(this,function(){this.removeDraft();b.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus("")});if(a||null==b.getTitle()||null==this.mode){var d=null!=b.getTitle()?b.getTitle():this.defaultFilename,e=!mxClient.IS_IOS||!navigator.standalone,g=this.mode;a=this.getServiceCount(!0);isLocalStorage&&a++;var l=4>=a?2:6<a?4:3,d=new CreateDialog(this,
+App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE||a==App.MODE_GITHUB||a==App.MODE_TRELLO){var b=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_TRELLO?this.trello:this.dropbox;null!=b&&b.pickLibrary(mxUtils.bind(this,function(a,c){if(null!=c)try{this.loadLibrary(c)}catch(k){this.handleError(k,mxResources.get("errorLoadingFile"))}else this.spinner.spin(document.body,
+mxResources.get("loading"))&&b.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a!=App.MODE_DEVICE||!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11){window.openNew=!1;window.openKey="open";var c=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile=
+new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(k){this.handleError(k,mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=c;window.openFile=null})}else{var d=document.createElement("input");
+d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){if(null!=d.files)for(var a=0;a<d.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(m){this.handleError(m,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(d.files[a])}));d.click()}};
+App.prototype.saveLibrary=function(a,b,c,d,e,g,k){d=null!=d?d:this.mode;e=null!=e?e:!1;g=null!=g?g:!1;var l=this.createLibraryDataFromImages(b),m=mxUtils.bind(this,function(a){this.spinner.stop();null!=k&&k();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==c&&d==App.MODE_DEVICE&&(c=new LocalLibrary(this,l,a));if(null==c)this.pickFolder(d,mxUtils.bind(this,function(c){d==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a,
+l,c,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,this.drive.libraryMimeType):d==App.MODE_GITHUB&&null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.gitHub.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_TRELLO&&null!=this.trello&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.trello.insertLibrary(a,l,mxUtils.bind(this,
+function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();
+this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_BROWSER?(c=mxUtils.bind(this,function(){var c=new StorageLibrary(this,l,a);c.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(c,b)}),m)}),null==localStorage.getItem(a)?c():this.confirm(mxResources.get("replaceIt",[a]),c)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(e||this.spinner.spin(document.body,mxResources.get("saving"))){c.setData(l);var f=mxUtils.bind(this,
+function(){c.save(!0,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);g||this.libraryLoaded(c,b);null!=k&&k()}),m)});if(a!=c.getTitle()){var h=c.getHash();c.rename(a,mxUtils.bind(this,function(a){c.constructor!=LocalLibrary&&h!=c.getHash()&&(mxSettings.removeCustomLibrary(h),mxSettings.addCustomLibrary(c.getHash()));this.removeLibrarySidebar(h);f()}),m)}else f()}};
+App.prototype.saveFile=function(a){var b=this.getCurrentFile();if(null!=b){var c=mxUtils.bind(this,function(){this.removeDraft();b.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus("")});if(a||null==b.getTitle()||null==this.mode){var d=null!=b.getTitle()?b.getTitle():this.defaultFilename,e=!mxClient.IS_IOS||!navigator.standalone,g=this.mode;a=this.getServiceCount(!0);isLocalStorage&&a++;var k=4>=a?2:6<a?4:3,d=new CreateDialog(this,
 d,mxUtils.bind(this,function(a,b){null!=a&&0<a.length&&(null==g&&b==App.MODE_DEVICE?(this.setMode(App.MODE_DEVICE),this.save(a,c)):"download"==b?(new LocalFile(this,null,a)).save():"_blank"==b?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(this.getFileData(!0)),this.openLink(this.getUrl(window.location.pathname),null,!0)):g!=b?this.pickFolder(b,mxUtils.bind(this,function(d){this.createFile(a,this.getFileData(/(\.xml)$/i.test(a)||0>a.indexOf("."),/(\.svg)$/i.test(a),
-/(\.html)$/i.test(a)),null,b,c,null==this.mode,d)})):null!=b&&this.save(a,c))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,e,this.isOffline()?null:"https://desk.draw.io/support/solutions/articles/16000042485",!0,l);this.showDialog(d.container,460,a>l?390:270,!0,!0);d.init()}else this.save(b.getTitle(),c)}};
+/(\.html)$/i.test(a)),null,b,c,null==this.mode,d)})):null!=b&&this.save(a,c))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,e,this.isOffline()?null:"https://desk.draw.io/support/solutions/articles/16000042485",!0,k);this.showDialog(d.container,460,a>k?390:270,!0,!0);d.init()}else this.save(b.getTitle(),c)}};
 App.prototype.loadTemplate=function(a,b,c){var d=a;this.isCorsEnabledForUrl(d)||(d="t="+(new Date).getTime(),d=PROXY_URL+"?url="+encodeURIComponent(a)+"&"+d);this.loadUrl(d,mxUtils.bind(this,function(d){/(\.vsdx)($|\?)/i.test(a)?this.importVisio(this.base64ToBlob(d.substring(d.indexOf(",")+1)),function(a){b(a)},c,a):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,a)?this.parseFile(new Blob([d],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&
 200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&b(a.responseText)}),a):this.isLucidChartData(d)?this.convertLucidChart(d,mxUtils.bind(this,function(a){b(a)}),mxUtils.bind(this,function(a){c(a)})):(/(\.png)($|\?)/i.test(a)&&(d=this.extractGraphModelFromPng(d)),b(d))}),c,/(\.png)($|\?)/i.test(a)||/(\.vsdx)($|\?)/i.test(a))};
 App.prototype.getPeerForMode=function(a){return a==App.MODE_GOOGLE?this.drive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_DROPBOX?this.dropbox:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_TRELLO?this.trello:null};
-App.prototype.createFile=function(a,b,c,d,e,g,l,m){d=m?null:null!=d?d:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){b=null!=b?b:this.emptyDiagramXml;var n=mxUtils.bind(this,function(){this.spinner.stop()}),f=mxUtils.bind(this,function(a){n();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{if(d==App.MODE_GOOGLE&&null!=this.drive)null==l&&null!=this.stateArg&&null!=this.stateArg.folderId&&(l=this.stateArg.folderId),
-this.drive.insertFile(a,b,l,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f);else if(d==App.MODE_GITHUB&&null!=this.gitHub)this.gitHub.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f,!1,l);else if(d==App.MODE_TRELLO&&null!=this.trello)this.trello.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f,!1,l);else if(d==App.MODE_DROPBOX&&null!=this.dropbox)this.dropbox.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,
-c,g,e)}),f);else if(d==App.MODE_ONEDRIVE&&null!=this.oneDrive)this.oneDrive.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f,!1,l);else if(d==App.MODE_BROWSER){n();var h=mxUtils.bind(this,function(){var d=new StorageFile(this,b,a);d.saveFile(a,!1,mxUtils.bind(this,function(){this.fileCreated(d,c,g,e)}),f)});null==localStorage.getItem(a)?h():this.confirm(mxResources.get("replaceIt",[a]),h,mxUtils.bind(this,function(){null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}else n(),
-this.fileCreated(new LocalFile(this,b,a,null==d),c,g,e)}catch(k){n(),this.handleError(k)}}};
-App.prototype.fileCreated=function(a,b,c,d){var e=window.location.pathname;null!=b&&0<b.length&&(e+="?libs="+b);e=this.getUrl(e);a.getMode()!=App.MODE_DEVICE&&(e+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var g=a.getData(),g=0<g.length?this.editor.extractGraphModel(mxUtils.parseXml(g).documentElement,!0):null,l=window.location.protocol+"//"+window.location.hostname+e,m=g,n=null;null!=g&&/\.svg$/i.test(a.getTitle())&&(n=this.createTemporaryGraph(this.editor.graph.getStylesheet()),
-document.body.appendChild(n.container),m=this.decodeNodeIntoGraph(m,n));a.setData(this.createFileData(g,n,a,l));null!=n&&n.container.parentNode.removeChild(n.container);var f=mxUtils.bind(this,function(){this.spinner.stop()}),h=mxUtils.bind(this,function(){f();var g=this.getCurrentFile();null==c&&null!=g&&(c=!g.isModified()&&null==g.getMode());var h=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);c&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved")));
-null!=b&&this.sidebar.showEntries(b)}),l=mxUtils.bind(this,function(){c||null==g||!g.isModified()?h():this.confirm(mxResources.get("allChangesLost"),null,h,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=d&&d();null==c||c?l():(a.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a.getData(),a.getTitle(),null==a.getMode())),null!=d&&d(),window.openWindow(e,null,l))});a.constructor==LocalFile||a.constructor==DriveFile?
+App.prototype.createFile=function(a,b,c,d,e,g,k,l){d=l?null:null!=d?d:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){b=null!=b?b:this.emptyDiagramXml;var m=mxUtils.bind(this,function(){this.spinner.stop()}),f=mxUtils.bind(this,function(a){m();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{if(d==App.MODE_GOOGLE&&null!=this.drive)null==k&&null!=this.stateArg&&null!=this.stateArg.folderId&&(k=this.stateArg.folderId),
+this.drive.insertFile(a,b,k,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f);else if(d==App.MODE_GITHUB&&null!=this.gitHub)this.gitHub.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f,!1,k);else if(d==App.MODE_TRELLO&&null!=this.trello)this.trello.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f,!1,k);else if(d==App.MODE_DROPBOX&&null!=this.dropbox)this.dropbox.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,
+c,g,e)}),f);else if(d==App.MODE_ONEDRIVE&&null!=this.oneDrive)this.oneDrive.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f,!1,k);else if(d==App.MODE_BROWSER){m();var h=mxUtils.bind(this,function(){var d=new StorageFile(this,b,a);d.saveFile(a,!1,mxUtils.bind(this,function(){this.fileCreated(d,c,g,e)}),f)});null==localStorage.getItem(a)?h():this.confirm(mxResources.get("replaceIt",[a]),h,mxUtils.bind(this,function(){null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}else m(),
+this.fileCreated(new LocalFile(this,b,a,null==d),c,g,e)}catch(n){m(),this.handleError(n)}}};
+App.prototype.fileCreated=function(a,b,c,d){var e=window.location.pathname;null!=b&&0<b.length&&(e+="?libs="+b);e=this.getUrl(e);a.getMode()!=App.MODE_DEVICE&&(e+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var g=a.getData(),g=0<g.length?this.editor.extractGraphModel(mxUtils.parseXml(g).documentElement,!0):null,k=window.location.protocol+"//"+window.location.hostname+e,l=g,m=null;null!=g&&/\.svg$/i.test(a.getTitle())&&(m=this.createTemporaryGraph(this.editor.graph.getStylesheet()),
+document.body.appendChild(m.container),l=this.decodeNodeIntoGraph(l,m));a.setData(this.createFileData(g,m,a,k));null!=m&&m.container.parentNode.removeChild(m.container);var f=mxUtils.bind(this,function(){this.spinner.stop()}),h=mxUtils.bind(this,function(){f();var g=this.getCurrentFile();null==c&&null!=g&&(c=!g.isModified()&&null==g.getMode());var h=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);c&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved")));
+null!=b&&this.sidebar.showEntries(b)}),k=mxUtils.bind(this,function(){c||null==g||!g.isModified()?h():this.confirm(mxResources.get("allChangesLost"),null,h,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=d&&d();null==c||c?k():(a.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a.getData(),a.getTitle(),null==a.getMode())),null!=d&&d(),window.openWindow(e,null,k))});a.constructor==LocalFile||a.constructor==DriveFile?
 h():a.saveFile(a.getTitle(),!1,mxUtils.bind(this,function(){h()}),mxUtils.bind(this,function(a){f();this.handleError(a)}))}};
 App.prototype.loadFile=function(a,b,c,d){this.hideDialog();var e=mxUtils.bind(this,function(){if(null==a||0==a.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var e=localStorage.getItem(a);if(null!=e)this.fileLoaded(new StorageFile(this,e,a)),null!=d&&d();else throw{message:mxResources.get("fileNotFound")};}catch(h){this.handleError(h,
 mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}))}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}));else if(null!=c)this.spinner.stop(),this.fileLoaded(c),null!=d&&d();else if("S"==a.charAt(0)){this.spinner.stop();try{this.loadDescriptor(JSON.parse(this.editor.graph.decompress(a.substring(1))),
@@ -8328,20 +8364,20 @@ d,mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoading
 f=mxUtils.bind(this,function(){if("https://drive.google.com/uc?id="!=g.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient)return!1;this.hideDialog();var a=mxUtils.bind(this,function(){this.spinner.stop();return null!=this.drive?(this.loadFile("G"+g.substring(31,g.lastIndexOf("&ex")),b,d),!0):!1});!a()&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.addListener("clientLoaded",a);return!0});this.loadTemplate(g,mxUtils.bind(this,function(b){this.spinner.stop();
 if(null!=b&&0<b.length){var c=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var d=g,e=g.lastIndexOf("."),h=d.lastIndexOf("/");e>h&&0<h&&(d=d.substring(h+1,e),e=g.substring(e),this.useCanvasForExport||".png"!=e||(e=".xml"),".svg"===e||".xml"===e||".html"===e||".png"===e)&&(c=d+e)}b=new LocalFile(this,b,null!=urlParams.title?decodeURIComponent(urlParams.title):c,!0);b.getHash=function(){return a};this.fileLoaded(b)||f()}}),mxUtils.bind(this,function(){f()||(this.spinner.stop(),
 this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile")))}))}else e=null,"G"==a.charAt(0)?e=this.drive:"D"==a.charAt(0)?e=this.dropbox:"W"==a.charAt(0)?e=this.oneDrive:"H"==a.charAt(0)?e=this.gitHub:"T"==a.charAt(0)&&(e=this.trello),null==e?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""})):(a=decodeURIComponent(a.substring(1)),
-e.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a);null!=d&&d()}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=a.getHash()}))})))}),g=this.getCurrentFile(),l=mxUtils.bind(this,function(){null!=g&&g.isModified()?this.confirm(mxResources.get("allChangesLost"),
-mxUtils.bind(this,function(){null!=g&&(window.location.hash=g.getHash())}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()});null==a||0==a.length?l():null!=g&&g.isModified()&&!b?window.openWindow(this.getUrl()+"#"+a,null,l):l()};
+e.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a);null!=d&&d()}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=a.getHash()}))})))}),g=this.getCurrentFile(),k=mxUtils.bind(this,function(){null!=g&&g.isModified()?this.confirm(mxResources.get("allChangesLost"),
+mxUtils.bind(this,function(){null!=g&&(window.location.hash=g.getHash())}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()});null==a||0==a.length?k():null!=g&&g.isModified()&&!b?window.openWindow(this.getUrl()+"#"+a,null,k):k()};
 App.prototype.getLibraryStorageHint=function(a){var b=a.getTitle();a.constructor!=LocalLibrary&&(b+="\n"+a.getHash());a.constructor==DriveLibrary?b+=" ("+mxResources.get("googleDrive")+")":a.constructor==GitHubLibrary?b+=" ("+mxResources.get("github")+")":a.constructor==TrelloLibrary?b+=" ("+mxResources.get("trello")+")":a.constructor==DropboxLibrary?b+=" ("+mxResources.get("dropbox")+")":a.constructor==OneDriveLibrary?b+=" ("+mxResources.get("oneDrive")+")":a.constructor==StorageLibrary?b+=" ("+
 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,d){var c=0,g=[],l=mxUtils.bind(this,function(){if(0==c){if(null!=b)for(var a=b.length-1;0<=a;a--)null!=g[a]&&this.loadLibrary(g[a]);null!=d&&d()}});if(null!=b)for(var m=0;m<b.length;m++){var n=encodeURIComponent(decodeURIComponent(b[m]));mxUtils.bind(this,
-function(b,d){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){c++;var e=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];g[d]=a;c--;l()}),f=mxUtils.bind(this,function(){a(b);c--;l()});this.pendingLibraries[b]=!0;var h=b.substring(0,1);if("L"==h)(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)):f()}))}catch(A){f()}}),0);else if("U"==h){var m=decodeURIComponent(b.substring(1));if(!this.isOffline()){h=m;this.isCorsEnabledForUrl(h)||(h="t="+(new Date).getTime(),h=PROXY_URL+"?url="+encodeURIComponent(m)+"&"+h);try{mxUtils.get(h,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),m))}catch(A){f()}else f()}),function(){f()})}catch(y){f()}}}else{var n=null;"G"==h?null!=
-this.drive&&null!=this.drive.user&&(n=this.drive):"H"==h?null!=this.gitHub&&null!=this.gitHub.getUser()&&(n=this.gitHub):"T"==h?null!=this.trello&&this.trello.isAuthorized()&&(n=this.trello):"D"==h?null!=this.dropbox&&null!=this.dropbox.getUser()&&(n=this.dropbox):"W"==h&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(n=this.oneDrive);null!=n?n.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(A){f()}}),function(a){f()}):(delete this.pendingLibraries[b],
-f())}}})(n,m)}l()});b(mxSettings.getCustomLibraries(),function(){b((urlParams.clibs||"").split(";"))})}};
+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,d){var c=0,g=[],k=mxUtils.bind(this,function(){if(0==c){if(null!=b)for(var a=b.length-1;0<=a;a--)null!=g[a]&&this.loadLibrary(g[a]);null!=d&&d()}});if(null!=b)for(var l=0;l<b.length;l++){var m=encodeURIComponent(decodeURIComponent(b[l]));mxUtils.bind(this,
+function(b,d){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){c++;var e=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];g[d]=a;c--;k()}),f=mxUtils.bind(this,function(){a(b);c--;k()});this.pendingLibraries[b]=!0;var h=b.substring(0,1);if("L"==h)(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)):f()}))}catch(B){f()}}),0);else if("U"==h){var l=decodeURIComponent(b.substring(1));if(!this.isOffline()){h=l;this.isCorsEnabledForUrl(h)||(h="t="+(new Date).getTime(),h=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+h);try{mxUtils.get(h,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),l))}catch(B){f()}else f()}),function(){f()})}catch(y){f()}}}else{var m=null;"G"==h?null!=
+this.drive&&null!=this.drive.user&&(m=this.drive):"H"==h?null!=this.gitHub&&null!=this.gitHub.getUser()&&(m=this.gitHub):"T"==h?null!=this.trello&&this.trello.isAuthorized()&&(m=this.trello):"D"==h?null!=this.dropbox&&null!=this.dropbox.getUser()&&(m=this.dropbox):"W"==h&&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(B){f()}}),function(a){f()}):(delete this.pendingLibraries[b],
+f())}}})(m,l)}k()});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),
 this.shareButton=null)}};
 App.prototype.save=function(a,b){var c=this.getCurrentFile(),d=mxResources.get("saving");null!=c&&c.constructor==DriveFile&&(d=mxResources.get("createRevision"));if(null!=c&&this.spinner.spin(document.body,d)){this.editor.setStatus("");this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var d=mxUtils.bind(this,function(a){this.spinner.stop();this.getCurrentFile()==c&&(c.isModified()?c.isAutosave()||c.addUnsavedStatus():this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))));null!=
-b&&b()}),e=mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==c.getTitle()?c.save(!0,d,e):c.saveAs(a,d,e)}};
+b&&b()}),e=mxUtils.bind(this,function(a){this.getCurrentFile()==c&&c.isModified()&&c.addUnsavedStatus();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==c.getTitle()?c.save(!0,d,e):c.saveAs(a,d,e)}};
 App.prototype.pickFolder=function(a,b,c){c=null!=c?c:!0;var d=this.spinner.pause();c&&a==App.MODE_GOOGLE&&null!=this.drive?this.drive.pickFolder(mxUtils.bind(this,function(a){d();if(a.action==google.picker.Action.PICKED){var c=null;null!=a.docs&&0<a.docs.length&&"folder"==a.docs[0].type&&(c=a.docs[0].id);b(c)}})):c&&a==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.pickFolder(mxUtils.bind(this,function(a){d();null!=a&&null!=a.value&&0<a.value.length&&(a=OneDriveFile.prototype.getIdOf(a.value[0]),
 b(a))})):c&&a==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.pickFolder(mxUtils.bind(this,function(a){d();b(a)})):c&&a==App.MODE_TRELLO&&null!=this.trello?this.trello.pickFolder(mxUtils.bind(this,function(a){d();b(a)})):EditorUi.prototype.pickFolder.apply(this,arguments)};
 App.prototype.exportFile=function(a,b,c,d,e,g){e==App.MODE_DROPBOX?null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.dropbox.insertFile(b,d?this.base64ToBlob(a,c):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)})):e==App.MODE_GOOGLE?null!=this.drive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.drive.insertFile(b,a,g,mxUtils.bind(this,function(a){this.spinner.stop()}),
@@ -8350,10 +8386,10 @@ function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop
 c():this.confirm(mxResources.get("replaceIt",[b]),c))};
 App.prototype.descriptorChanged=function(){var a=this.getCurrentFile();if(null!=a){if(null!=this.fname){this.fnameWrapper.style.display="block";this.fname.innerHTML="";var b=null!=a.getTitle()?a.getTitle():this.defaultFilename;mxUtils.write(this.fname,b);this.fname.setAttribute("title",b+" - "+mxResources.get("rename"))}this.editor.graph.setEnabled(a.isEditable());null==urlParams.rev&&(this.updateDocumentTitle(),a=a.getHash(),0<a.length?window.location.hash=a:0<window.location.hash.length&&(window.location.hash=
 ""))}};App.prototype.toggleChat=function(){var a=this.getCurrentFile();if(null!=a){if(null==a.chatWindow){var b=document.body.offsetWidth-300;a.chatWindow=new ChatWindow(this,mxResources.get("chatWindowTitle"),document.getElementById("geChat"),b,80,250,350,a.realtime);a.chatWindow.window.setVisible(!1)}a.chatWindow.window.setVisible(!a.chatWindow.window.isVisible())}};
-App.prototype.showAuthDialog=function(a,b,c,d){var e=this.spinner.pause();this.showDialog((new AuthDialog(this,a,b,mxUtils.bind(this,function(a){try{null!=c&&c(a,mxUtils.bind(this,function(){this.hideDialog();e()}))}catch(l){this.editor.setStatus(mxUtils.htmlEntities(l.message))}}))).container,300,b?180:140,!0,!0,mxUtils.bind(this,function(a){null!=d&&d();a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
-App.prototype.convertFile=function(a,b,c,d,e,g){var l=b;/\.svg$/i.test(l)||(l=l.substring(0,b.lastIndexOf("."))+d);var m=!1;null!=this.gitHub&&a.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(m=!0);if(/\.v(dx|sdx?)$/i.test(b)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var n=new XMLHttpRequest;n.open("GET",a,!0);m||(n.responseType="blob");n.onload=mxUtils.bind(this,function(){var a=null;m?(a=JSON.parse(n.responseText),a=this.base64ToBlob(a.content,
-"application/octet-stream")):a=new Blob([n.response],{type:"application/octet-stream"});this.importVisio(a,mxUtils.bind(this,function(a){e(new LocalFile(this,a,l,!0))}),g,b)});n.send()}else{var f=mxUtils.bind(this,function(c){try{/\.png$/i.test(b)?(temp=this.extractGraphModelFromPng(c),null!=temp?e(new LocalFile(this,temp,l,!0)):e(new LocalFile(this,c,b,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,a)?this.parseFile(new Blob([c],{type:"application/octet-stream"}),
-mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?e(new LocalFile(this,a.responseText,l,!0)):null!=g&&g({message:mxResources.get("errorLoadingFile")}))}),b):e(new LocalFile(this,c,l,!0))}catch(k){null!=g&&g(k)}});c=/\.png$/i.test(b)||/\.jpe?g$/i.test(b)||null!=c&&"image/"==c.substring(0,6);m?mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=e){a=JSON.parse(a.getText());var c=a.content;"base64"===a.encoding&&(c=/\.png$/i.test(b)?
+App.prototype.showAuthDialog=function(a,b,c,d){var e=this.spinner.pause();this.showDialog((new AuthDialog(this,a,b,mxUtils.bind(this,function(a){try{null!=c&&c(a,mxUtils.bind(this,function(){this.hideDialog();e()}))}catch(k){this.editor.setStatus(mxUtils.htmlEntities(k.message))}}))).container,300,b?180:140,!0,!0,mxUtils.bind(this,function(a){null!=d&&d();a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
+App.prototype.convertFile=function(a,b,c,d,e,g){var k=b;/\.svg$/i.test(k)||(k=k.substring(0,b.lastIndexOf("."))+d);var l=!1;null!=this.gitHub&&a.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(l=!0);if(/\.v(dx|sdx?)$/i.test(b)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var m=new XMLHttpRequest;m.open("GET",a,!0);l||(m.responseType="blob");m.onload=mxUtils.bind(this,function(){var a=null;l?(a=JSON.parse(m.responseText),a=this.base64ToBlob(a.content,
+"application/octet-stream")):a=new Blob([m.response],{type:"application/octet-stream"});this.importVisio(a,mxUtils.bind(this,function(a){e(new LocalFile(this,a,k,!0))}),g,b)});m.send()}else{var f=mxUtils.bind(this,function(c){try{/\.png$/i.test(b)?(temp=this.extractGraphModelFromPng(c),null!=temp?e(new LocalFile(this,temp,k,!0)):e(new LocalFile(this,c,b,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,a)?this.parseFile(new Blob([c],{type:"application/octet-stream"}),
+mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?e(new LocalFile(this,a.responseText,k,!0)):null!=g&&g({message:mxResources.get("errorLoadingFile")}))}),b):e(new LocalFile(this,c,k,!0))}catch(n){null!=g&&g(n)}});c=/\.png$/i.test(b)||/\.jpe?g$/i.test(b)||null!=c&&"image/"==c.substring(0,6);l?mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=e){a=JSON.parse(a.getText());var c=a.content;"base64"===a.encoding&&(c=/\.png$/i.test(b)?
 "data:image/png;base64,"+c:!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(c):atob(c));f(c)}}else null!=g&&g({code:App.ERROR_UNKNOWN})}),function(){null!=g&&g({code:App.ERROR_UNKNOWN})},!1,this.timeout,function(){null!=g&&g({code:App.ERROR_TIMEOUT,retry:fn})}):this.loadUrl(a,f,g,c)}};
 App.prototype.updateHeader=function(){if(null!=this.menubar){this.appIcon=document.createElement("a");this.appIcon.style.display="block";this.appIcon.style.position="absolute";this.appIcon.style.width="40px";this.appIcon.style.backgroundColor="#f18808";this.appIcon.style.height=this.menubarHeight+"px";mxEvent.disableContextMenu(this.appIcon);mxEvent.addListener(this.appIcon,"click",mxUtils.bind(this,function(a){this.appIconClicked(a)}));var a=mxClient.IS_SVG?"url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzA2LjE4NSAxMjAuMjk2IgogICB2aWV3Qm94PSIyNCAyNiA2OCA2OCIKICAgeT0iMHB4IgogICB4PSIwcHgiCiAgIHZlcnNpb249IjEuMSI+CiAgIAkgPGc+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNDEuMDYxIgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjkiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTUyOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNzUuMDc2IgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjgiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTAwOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGc+PHBhdGgKICAgICAgICAgZD0iTTUyLjc3Myw3Ny4wODRjMCwxLjk1NC0xLjU5OSwzLjU1My0zLjU1MywzLjU1M0gzNi45OTljLTEuOTU0LDAtMy41NTMtMS41OTktMy41NTMtMy41NTN2LTkuMzc5ICAgIGMwLTEuOTU0LDEuNTk5LTMuNTUzLDMuNTUzLTMuNTUzaDEyLjIyMmMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjc3LjA4NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnCiAgICAgICBpZD0iZzM0MTkiPjxwYXRoCiAgICAgICAgIGQ9Ik02Ny43NjIsNDguMDc0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINTEuOTg4Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M0g2NC4yMWMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjQ4LjA3NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnPjxwYXRoCiAgICAgICAgIGQ9Ik04Mi43NTIsNzcuMDg0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINjYuOTc3Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M2gxMi4yMjJjMS45NTQsMCwzLjU1MywxLjU5OSwzLjU1MywzLjU1M1Y3Ny4wODR6IgogICAgICAgICBmaWxsPSIjRkZGRkZGIiAvPjwvZz48L2c+PC9zdmc+)":
 "url('"+IMAGE_PATH+"/logo-white.png')";this.appIcon.style.backgroundImage=a;this.appIcon.style.backgroundPosition="center center";this.appIcon.style.backgroundRepeat="no-repeat";mxUtils.setPrefixedStyle(this.appIcon.style,"transition","all 125ms linear");mxEvent.addListener(this.appIcon,"mouseover",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&(a=a.getMode(),a==App.MODE_GOOGLE?this.appIcon.style.backgroundImage="url("+IMAGE_PATH+"/google-drive-logo-white.svg)":a==App.MODE_DROPBOX?
@@ -8379,8 +8415,8 @@ Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("close"));b.
 (null!=b.pictureUrl?'<img width="80" height="80" style="margin-right:10px;border-radius:50%;" src="'+b.pictureUrl+'"/>':'<img width="80" height="80" style="margin-right:4px;margin-top:2px;" src="'+this.defaultUserPicture+'"/>')+'</td><td valign="top" style="white-space:nowrap;'+(null!=b.pictureUrl?"padding-top:14px;":"")+'"><b>'+mxUtils.htmlEntities(b.displayName)+"</b><br><small>"+mxUtils.htmlEntities(b.email)+"</small><br><br><small>"+mxResources.get("googleDrive")+"</small></tr></table>",b=document.createElement("div"),
 b.style.textAlign="center",b.style.padding="12px",b.style.background="whiteSmoke",b.style.borderTop="1px solid #e0e0e0",b.style.whiteSpace="nowrap",b.appendChild(mxUtils.button(mxResources.get("signOut"),mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile?this.confirm(mxResources.get("areYouSure"),mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("signOut"));this.diagramContainer.style.display="none";this.formatContainer.style.display=
 "none";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";null!=this.tabContainer&&(this.tabContainer.style.display="none");a.close();window.setTimeout(mxUtils.bind(this,function(){this.showDialog=function(){};window.location.hash="";this.drive.clearUserId();gapi.auth.signOut();window.location.reload()}),null!=a&&a.constructor==DriveFile?2E3:0)})):(this.drive.clearUserId(),this.drive.setUser(null),gapi.auth.signOut())}))),this.userPanel.appendChild(b)));
-b=mxUtils.bind(this,function(a,b,c,m){null!=a&&(d&&this.userPanel.appendChild(document.createElement("hr")),d=!0,this.userPanel.innerHTML+='<table style="font-size:10pt;padding:20px 20px 10px 10px;"><tr><td valign="top">'+(null!=b?'<img style="margin-right:10px;" src="'+b+'" width="40" height="40"/></td>':"")+'<td valign="middle" style="white-space:nowrap;"><b>'+mxUtils.htmlEntities(a.displayName)+"</b>"+(null!=a.email?'<br><font color="gray">'+mxUtils.htmlEntities(a.email)+"</font>":"")+(null!=m?
-"<br><br><small>"+mxUtils.htmlEntities(m)+"</small>":"")+"</td></tr></table>",a=document.createElement("div"),a.style.textAlign="center",a.style.padding="12px",a.style.background="whiteSmoke",a.style.borderTop="1px solid #e0e0e0",a.style.whiteSpace="nowrap",null!=c&&a.appendChild(mxUtils.button(mxResources.get("signOut"),c)),this.userPanel.appendChild(a))});null!=this.dropbox&&b(this.dropbox.getUser(),IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=
+b=mxUtils.bind(this,function(a,b,c,l){null!=a&&(d&&this.userPanel.appendChild(document.createElement("hr")),d=!0,this.userPanel.innerHTML+='<table style="font-size:10pt;padding:20px 20px 10px 10px;"><tr><td valign="top">'+(null!=b?'<img style="margin-right:10px;" src="'+b+'" width="40" height="40"/></td>':"")+'<td valign="middle" style="white-space:nowrap;"><b>'+mxUtils.htmlEntities(a.displayName)+"</b>"+(null!=a.email?'<br><font color="gray">'+mxUtils.htmlEntities(a.email)+"</font>":"")+(null!=l?
+"<br><br><small>"+mxUtils.htmlEntities(l)+"</small>":"")+"</td></tr></table>",a=document.createElement("div"),a.style.textAlign="center",a.style.padding="12px",a.style.background="whiteSmoke",a.style.borderTop="1px solid #e0e0e0",a.style.whiteSpace="nowrap",null!=c&&a.appendChild(mxUtils.button(mxResources.get("signOut"),c)),this.userPanel.appendChild(a))});null!=this.dropbox&&b(this.dropbox.getUser(),IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=
 a&&a.constructor==DropboxFile){var b=mxUtils.bind(this,function(){this.dropbox.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.dropbox.logout()}),mxResources.get("dropbox"));null!=this.oneDrive&&b(this.oneDrive.getUser(),IMAGE_PATH+"/onedrive-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==OneDriveFile){var b=mxUtils.bind(this,
 function(){this.oneDrive.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.oneDrive.logout()}),mxResources.get("oneDrive"));null!=this.gitHub&&b(this.gitHub.getUser(),IMAGE_PATH+"/github-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==GitHubFile){var b=mxUtils.bind(this,function(){this.gitHub.logout();window.location.hash=""});
 a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.gitHub.logout()}),mxResources.get("github"));null!=this.trello&&b(this.trello.getUser(),IMAGE_PATH+"/trello-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==TrelloFile){var b=mxUtils.bind(this,function(){this.trello.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),
@@ -8388,12 +8424,12 @@ null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else thi
 this.userPanel.parentNode.removeChild(this.userPanel)})));var a=null;null!=this.drive&&null!=this.drive.getUser()?a=this.drive.getUser():null!=this.oneDrive&&null!=this.oneDrive.getUser()?a=this.oneDrive.getUser():null!=this.dropbox&&null!=this.dropbox.getUser()?a=this.dropbox.getUser():null!=this.gitHub&&null!=this.gitHub.getUser()&&(a=this.gitHub.getUser());null!=a?(this.userElement.innerHTML="",560<screen.width&&(mxUtils.write(this.userElement,a.displayName),this.userElement.style.display="block")):
 this.userElement.style.display="none"}else null!=this.userElement&&(this.userElement.parentNode.removeChild(this.userElement),this.userElement=null)};var editorResetGraph=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){editorResetGraph.apply(this,arguments);this.graph.pageFormat=mxSettings.getPageFormat()};(function(){var a=mxPopupMenu.prototype.showMenu;mxPopupMenu.prototype.showMenu=function(){a.apply(this,arguments);this.div.style.overflowY="auto";this.div.style.overflowX="hidden";this.div.style.maxHeight=Math.max(document.body.clientHeight,document.documentElement.clientHeight)-10+"px"};Menus.prototype.createHelpLink=function(a){var b=document.createElement("span");b.setAttribute("title",mxResources.get("help"));b.style.cssText="color:blue;text-decoration:underline;margin-left:12px;cursor:help;";
 var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("valign","bottom");c.setAttribute("src",Editor.helpImage);b.appendChild(c);mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){null!=this.editorUi.menubar&&this.editorUi.menubar.hideMenu();this.editorUi.openLink(a);mxEvent.consume(b)}));return b};Menus.prototype.addLinkToItem=function(a,b){null!=a&&a.firstChild.nextSibling.appendChild(this.createHelpLink(b))};var b=Menus.prototype.init;Menus.prototype.init=function(){b.apply(this,
-arguments);var a=this.editorUi,c=a.editor.graph,g=mxUtils.bind(c,c.isEnabled),l=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),m=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode),n=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname||
+arguments);var a=this.editorUi,c=a.editor.graph,g=mxUtils.bind(c,c.isEnabled),k=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),l=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode),m=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname||
 "drive.draw.io"==window.location.hostname||"legacy.draw.io"==window.location.hostname)&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode),f=("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==urlParams.tr)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode);mxClient.IS_SVG||a.isOffline()||((new Image).src=IMAGE_PATH+
-"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,l,k,m){b=parseInt(b);!isNaN(b)&&0<
-b&&a.exportSvg(b/100,c,d,e,f,g,h,!l,k,m)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var d=null==a.pages||1>=a.pages.length,e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatXml"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(e);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,c.isSelectionEmpty()),
+"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l,m){b=parseInt(b);!isNaN(b)&&0<
+b&&a.exportSvg(b/100,c,d,e,f,g,h,!k,l,m)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var d=null==a.pages||1>=a.pages.length,e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatXml"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(e);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,c.isSelectionEmpty()),
 g=a.addCheckbox(b,mxResources.get(d?"compressed":"allPages"),!0);g.style.marginBottom="16px";mxEvent.addListener(f,"change",function(){f.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("xml",d?!g.checked:null,null,!f.checked,d?null:!g.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}));a.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){a.showPublishLinkDialog(mxResources.get("url"),
-!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,e,f,g,h,l,k,m){a.createHtml(b,c,d,e,f,g,h,l,k,m,mxUtils.bind(this,function(b,c){var d=
+!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,e,f,g,h,k,l,m){a.createHtml(b,c,d,e,f,g,h,k,l,m,mxUtils.bind(this,function(b,c){var d=
 a.getBaseFilename(h),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+b+"\n"+c+"\n</body>\n</html>";a.saveData(d+".html","html",e,"text/html")}))})})}));a.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(a.isOffline()||a.printPdfExport)a.showDialog((new PrintDialog(a,mxResources.get("formatPdf"))).container,
 360,null!=a.pages&&1<a.pages.length?420:360,!0,!0);else{var b=document.createElement("div");b.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatPdf"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(d);var e=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,c.isSelectionEmpty()),f=a.addCheckbox(b,mxResources.get("crop"),!c.pageVisible||!a.pdfPageExport,!a.pdfPageExport);f.style.marginBottom="16px";a.pdfPageExport||
 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(){function b(){a.fileLoaded(null)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),
@@ -8401,89 +8437,89 @@ null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});a.acti
 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-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),
-null,!0))});if("undefined"!==typeof MathJax){var h=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=!a.isMathEnabled();c.model.execute(b)});h.setToggleAction(!0);h.setSelectedCallback(function(){return a.isMathEnabled()});h.isEnabled=g}if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),h.setToggleAction(!0),
-h.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var k=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});k.setToggleAction(!0);k.setSelectedCallback(function(){return k.isEnabled()&&a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=c.getSelectionCells(),d=[],e=0;e<b.length;e++)c.getModel().isVertex(b[e])&&d.push(b[e]);0<d.length&&(b=new EditGeometryDialog(a,d),a.showDialog(b.container,200,250,!0,!0),b.init())},
-null,null,Editor.ctrlKey+"+Shift+M");var q="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" ");a.actions.addAction("copyStyle",function(){var b=c.view.getState(c.getSelectionCell());
-if(c.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=c.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],d=0;d<b.length;d++){var e=b[d],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);null==a.copiedStyle[g]&&"none"==e&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(c.isEnabled()&&!c.isSelectionEmpty()&&null!=a.copiedStyle){c.getModel().beginUpdate();try{for(var b=c.getSelectionCells(),d=
-0;d<b.length;d++)for(var e=c.view.getState(b[d]),f=0;f<q.length;f++){var g=q[f],h=a.copiedStyle[g];e.style[g]!=h&&c.setCellStyles(g,h,[b[d]])}}finally{c.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container,320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+
-"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,l,k){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,e,f,h,!l,k)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg",
-new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,l,k){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,e,!1,h,!l,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",
-null,null,b)}),!0)}));h=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){c.setShadowVisible(!c.shadowVisible)}));h.setToggleAction(!0);h.setSelectedCallback(function(){return c.shadowVisible});var u=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){u||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){u=!1}),u=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});
-a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});
-a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});h=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",
-function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));h=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140),
-this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx",
-new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=b.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}),
-c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(f,Editor.checkmarkImage));return f});d("");b.addSeparator(c);for(var e in mxLanguageMap)d(e)}))),"atlas"!=uiTheme){var p=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=p.apply(this,arguments);if(null!=b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>',
-c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,d){if(!mxClient.IS_CHROMEAPP&&a.isOffline())this.addMenuItems(b,["about"],d);else{var e=b.addItem("Search:",null,null,d,null,null,!1);e.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input");
-f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(f.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+encodeURIComponent(b)),f.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&&
-(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b,["-","quickStart","userManual","keyboardShortcuts","-"],d);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],d);this.addMenuItems(b,["support","-"],d);a.isOffline()||EditorUi.isElectronApp||navigator.standalone||
-"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],d);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],d);this.addMenuItems(b,["-","about"],d)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),
-mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);
-this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],d));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=c.getGraphBounds(),b=c.view.translate,e=c.view.scale;c.insertVertex(d,null,"",a.x/e-b.x,a.y/e-b.y,a.width/e,a.height/e,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),
-this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){c.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+c.compress(mxUtils.getXml(c.encodeCells(c.getSelectionCells())))+"', width, height, 'Title');"))})),this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],d),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=c.getGraphBounds(),
-d=c.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/d),Math.floor((1-b.y)/d));e.scale(1/d);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var l=e.restore;e.restore=function(){g--;l.apply(this,arguments)};var k=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);k.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(c.getView().getState(c.model.root),e);mxLog.show();
-mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],d),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),
-console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+
-b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel",
-"testDownloadRtModel"],d),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-","testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,
-!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(c.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),
-function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,l,k,m){a.createHtml(b,c,d,e,f,g,h,l,k,m,mxUtils.bind(this,function(b,c){var d=new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');
-d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f,
-a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,
-EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},
-mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));
-a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=c.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((b.y+b.height-c.view.translate.y)/c.view.scale)+2,function(b,c,d,e,f,g,h,l){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(k){a.spinner.stop();k=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+l+';" src="'+a.createLink(b,c,d,e,f,g,k)+'"></iframe>');
-a.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});
-a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),h.setToggleAction(!0),h.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,
-360,170,!0,!1)});h=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});h.setToggleAction(!0);h.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){c.isEditing()&&c.stopEditing();var d="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());
-if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=d;b&&(e.exit=!0);d=JSON.stringify(e)}(window.opener||window.parent).postMessage(d,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",
-modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b,
-["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",
-mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(b,d){function e(b){b.pickFile(function(c){a.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this,
-function(b,d,e){var f=c.view,g=c.getGraphBounds(),h=c.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*c.gridSize)),l=c.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*c.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=!0,k=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,k,m){f=g?Math.min(1,Math.min(a.maxImageSize/k,a.maxImageSize/m)):1;a.importFile(b,d,h,l,Math.round(k*f),Math.round(m*f),e,function(b){a.spinner.stop();
-c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=a;k()}):k()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,d,h,l,0,0,e,function(b){a.spinner.stop();c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&
-(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){e(a.drive)},d):l&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){e(a.gitHub)},d);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){e(a.dropbox)},d):m&&b.addItem(mxResources.get("dropbox")+
-" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){e(a.oneDrive)},d):n&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){e(a.trello)},d):f&&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.importLocalFile(!1)},d);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.importLocalFile(!0)},d);a.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";
-a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))})).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),e=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);
-"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(e,Editor.checkmarkImage);b.addSeparator(c);e=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(e,Editor.checkmarkImage);
-e=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(e,Editor.checkmarkImage)})));h=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();
-if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==
-StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));h.isEnabled=function(){return this.enabled&&g.apply(this,arguments)};h.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():a.defaultFilename,
-d="",e=c.lastIndexOf(".");0<=e&&(d=c.substring(e),c=c.substring(0,e));c=mxResources.get("copyOf",[c])+d;b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=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("useOffline",new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")}));
-a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.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=function(b,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var b=new ParseDialog(a,d,e);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,d,e){var f=c.isMouseInsertPoint()?c.getInsertPoint():c.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,d),e);a.vertex=!0;c.getModel().beginUpdate();try{a=c.addCell(a),c.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{c.getModel().endUpdate()}c.scrollCellToVisible(a);c.setSelectionCell(a);c.container.focus();c.editAfterInsert&&c.startEditing(a);return a};a.actions.addAction("insertText",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&
-c.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=g;a.actions.addAction("insertRectangle",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=g;a.actions.addAction("insertEllipse",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",
-80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;a.actions.addAction("insertRhombus",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=g;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):v(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),
-c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);A(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));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):l&&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):m&&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):n&&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):f&&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&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));Editor.enableCustomLibraries&&
-(this.put("newLibrary",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},c):l&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},c);null!=
-a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},c):m&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},c):n&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?
-b.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},c):f&&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.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null,
-null,null,null,App.MODE_DEVICE)},c)})),this.put("openLibraryFrom",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},c):l&&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):m&&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):n&&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):f&&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 editGeometry - 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||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog;a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)},
-null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"},
-{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},
-{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom",
-b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],
-c),null==d.realtime?this.addMenuItems(b,["save","share","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile?this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&
-this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c);b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"],
-c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var c=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a,b){if(480>=screen.width&&a==this.get("help")){b.style.paddingRight="0px";b.style.paddingLeft="0px";b.innerHTML="";var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign",
-"bottom");d.setAttribute("src",Editor.helpImage);b.appendChild(d)}c.apply(this,arguments)}})();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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+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("refresh",function(){function b(){c.setModified(!1);a.loadFile(c.getHash(),!0)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()},null,null,"Alt+Shift+R");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),null,!0))});if("undefined"!==typeof MathJax){var h=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=!a.isMathEnabled();c.model.execute(b)});
+h.setToggleAction(!0);h.setSelectedCallback(function(){return a.isMathEnabled()});h.isEnabled=g}if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),h.setToggleAction(!0),h.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()&&
+a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=c.getSelectionCells(),d=[],e=0;e<b.length;e++)c.getModel().isVertex(b[e])&&d.push(b[e]);0<d.length&&(b=new EditGeometryDialog(a,d),a.showDialog(b.container,200,250,!0,!0),b.init())},null,null,Editor.ctrlKey+"+Shift+M");var u="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" ");
+a.actions.addAction("copyStyle",function(){var b=c.view.getState(c.getSelectionCell());if(c.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=c.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],d=0;d<b.length;d++){var e=b[d],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);null==a.copiedStyle[g]&&"none"==e&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(c.isEnabled()&&!c.isSelectionEmpty()&&
+null!=a.copiedStyle){c.getModel().beginUpdate();try{for(var b=c.getSelectionCells(),d=0;d<b.length;d++)for(var e=c.view.getState(b[d]),f=0;f<u.length;f++){var g=u[f],h=a.copiedStyle[g];e.style[g]!=h&&c.setCellStyles(g,h,[b[d]])}}finally{c.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container,
+320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,e,f,h,!k,l)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,
+function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,e,!1,h,!k,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||
+a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",null,null,b)}),!0)}));h=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){c.setShadowVisible(!c.shadowVisible)}));h.setToggleAction(!0);h.setSelectedCallback(function(){return c.shadowVisible});var p=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){p||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){p=!1}),
+p=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
+a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});h=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=
+new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&
+this.tagsWindow.window.isVisible()}));h=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140),this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));
+h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=b.addItem(e,
+null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}),c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(f,Editor.checkmarkImage));return f});d("");b.addSeparator(c);for(var e in mxLanguageMap)d(e)}))),"atlas"!=uiTheme){var q=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=q.apply(this,arguments);if(null!=
+b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>',c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,d){if(!mxClient.IS_CHROMEAPP&&
+a.isOffline())this.addMenuItems(b,["about"],d);else{var e=b.addItem("Search:",null,null,d,null,null,!1);e.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input");f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(f.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+
+encodeURIComponent(b)),f.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&&(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b,
+["-","quickStart","userManual","keyboardShortcuts","-"],d);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],d);this.addMenuItems(b,["support","-"],d);a.isOffline()||EditorUi.isElectronApp||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],d);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],d);this.addMenuItems(b,["-","about"],d)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",
+mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),
+mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],d));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,
+function(){var a=c.getGraphBounds(),b=c.view.translate,d=c.view.scale;c.insertVertex(c.getDefaultParent(),null,"",a.x/d-b.x,a.y/d-b.y,a.width/d,a.height/d,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){c.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+c.compress(mxUtils.getXml(c.encodeCells(c.getSelectionCells())))+"', width, height, 'Title');"))})),
+this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],d),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=c.getGraphBounds(),d=c.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/d),Math.floor((1-b.y)/d));e.scale(1/d);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var k=
+e.restore;e.restore=function(){g--;k.apply(this,arguments)};var l=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);l.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(c.getView().getState(c.model.root),e);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],d),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),
+this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",
+mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&
+299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel","testDownloadRtModel"],d),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-",
+"testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(c.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,
+b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,k,l,m){a.createHtml(b,c,d,e,f,g,h,k,l,m,mxUtils.bind(this,function(b,c){var d=
+new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft=
+"26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f,a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},
+20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+
+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,
+g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=c.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),
+null,"100%",Math.ceil((b.y+b.height-c.view.translate.y)/c.view.scale)+2,function(b,c,d,e,f,g,h,k){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(l){a.spinner.stop();l=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+k+';" src="'+a.createLink(b,c,d,e,f,g,l)+'"></iframe>');a.showDialog(l.container,440,240,!0,!0);l.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,
+null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();
+b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),h.setToggleAction(!0),h.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,360,170,!0,!1)});h=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&
+(mxSettings.settings.search=!b,mxSettings.save())});h.setToggleAction(!0);h.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){c.isEditing()&&c.stopEditing();var d="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=d;b&&(e.exit=!0);d=JSON.stringify(e)}(window.opener||window.parent).postMessage(d,
+"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),
+null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b,["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||
+this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(b,d){function e(b){b.pickFile(function(c){a.spinner.spin(document.body,
+mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this,function(b,d,e){var f=c.view,g=c.getGraphBounds(),h=c.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*c.gridSize)),k=c.snap(Math.ceil(Math.max(0,
+(g.y+g.height)/f.scale-f.translate.y)+4*c.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=!0,l=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,l,m){f=g?Math.min(1,Math.min(a.maxImageSize/l,a.maxImageSize/m)):1;a.importFile(b,d,h,k,Math.round(l*f),Math.round(m*f),e,function(b){a.spinner.stop();c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=
+a;l()}):l()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,d,h,k,0,0,e,function(b){a.spinner.stop();c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+
+"...",null,function(){e(a.drive)},d):k&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){e(a.gitHub)},d);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){e(a.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(){e(a.oneDrive)},d):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){e(a.trello)},d):f&&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.importLocalFile(!1)},d);mxClient.IS_IOS||b.addItem(mxResources.get("device")+
+"...",null,function(){a.importLocalFile(!0)},d);a.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==
+c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))})).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),e=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(e,Editor.checkmarkImage);b.addSeparator(c);e=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");
+mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(e,
+Editor.checkmarkImage);e=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(e,Editor.checkmarkImage)})));h=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,
+function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));
+return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));h.isEnabled=function(){return this.enabled&&g.apply(this,arguments)};h.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=a.getCopyFilename(b);b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&
+b.saveAs(c,mxUtils.bind(this,function(c){b.desc=c;b.save(!1,mxUtils.bind(this,function(){a.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):a.createFile(c,a.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("useOffline",
+new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")}));a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.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=function(b,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var b=new ParseDialog(a,d,e);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,d,e){var f=c.isMouseInsertPoint()?c.getInsertPoint():c.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,d),e);a.vertex=!0;c.getModel().beginUpdate();try{a=c.addCell(a),c.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{c.getModel().endUpdate()}c.scrollCellToVisible(a);c.setSelectionCell(a);c.container.focus();c.editAfterInsert&&c.startEditing(a);return a};a.actions.addAction("insertText",
+function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&c.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=g;a.actions.addAction("insertRectangle",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=g;a.actions.addAction("insertEllipse",function(){c.isEnabled()&&
+!c.isCellLocked(c.getDefaultParent())&&y("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;a.actions.addAction("insertRhombus",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=g;var B=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):v(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,
+"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);B(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){B(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));
+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):k&&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):f&&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&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},
+mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},c):k&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+
+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,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.showLibraryDialog(null,null,null,null,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.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},c):f&&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.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},c);mxClient.IS_IOS||
+b.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},c)})),this.put("openLibraryFrom",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},c):k&&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):f&&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 editGeometry - 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||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog;
+a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)},null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"},
+{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",
+lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+
+"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom",b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],
+c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],c),null==d.realtime?this.addMenuItems(b,["save","share","-","refresh","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile?
+this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c);
+b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"],c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var c=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a,
+b){if(480>=screen.width&&a==this.get("help")){b.style.paddingRight="0px";b.style.paddingLeft="0px";b.innerHTML="";var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign","bottom");d.setAttribute("src",Editor.helpImage);b.appendChild(d)}c.apply(this,arguments)}})();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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
 DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,c){this.ui=a;this.page=b;this.previous=this.name=c}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
 function MovePage(a,b,c){this.ui=a;this.oldIndex=b;this.newIndex=c}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))}
@@ -8496,12 +8532,12 @@ EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mx
 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 c=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=c&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&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?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&
 this.editor.graph.mathEnabled||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){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
-Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),c=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight")),g=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.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=g&&0<g.length?g:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:isNaN(c)?mxGraph.prototype.pageScale:c,pageFormat:isNaN(d)||isNaN(e)?this.pageFormat:new mxRectangle(0,0,d,d),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),
-selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),c=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight")),g=a.getAttribute("background"),k=a.getAttribute("backgroundImage"),k=null!=k&&0<k.length?JSON.parse(k):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.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=g&&0<g.length?g:this.defaultGraphBackground,backgroundImage:null!=k?new mxImage(k.src,k.width,k.height):null,pageScale:isNaN(c)?mxGraph.prototype.pageScale:c,pageFormat:isNaN(d)||isNaN(e)?mxSettings.getPageFormat():new mxRectangle(0,0,d,e),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==
+a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
 Graph.prototype.saveViewState=function(a,b){b.setAttribute("grid",null==a||a.gridEnabled?"1":"0");b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");b.setAttribute("tooltips",null==a||a.tooltips?"1":"0");b.setAttribute("connect",null==a||a.connect?"1":"0");b.setAttribute("arrows",null==a||a.arrows?"1":"0");b.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");b.setAttribute("page",null==a&&this.defaultPageVisible||
-null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var c=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=c&&(b.setAttribute("pageWidth",c.width),b.setAttribute("pageHeight",c.height));b.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?
-"1":"0");b.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")};
+null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var c=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=c&&(b.setAttribute("pageWidth",c.width),b.setAttribute("pageHeight",c.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow",
+null!=a&&a.shadowVisible?"1":"0")};
 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}};
 Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat=
@@ -8518,9 +8554,9 @@ EditorUi.prototype.createTabContainer=function(){var a=document.createElement("d
 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 c=this.editor.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
 c)/this.pages.length)+1),e=null,g=0;g<this.pages.length;g++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",d.style.fontWeight="bold",d.style.borderTopStyle="none"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),e=c):mxEvent.consume(b)}));mxEvent.addListener(d,
 "dragend",mxUtils.bind(this,function(a){e=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=e&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=e&&c!=e&&this.movePage(e,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(g,this.createTabForPage(this.pages[g],d,this.pages[g]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
-d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-c){null!=d&&(d.style.position="absolute",d.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 m=this.createControlTab(4,
-"&nbsp;&#10095;");m.style.position="absolute";m.style.right=this.editor.chromeless?"0px":"29px";m.style.fontSize="13pt";this.tabContainer.appendChild(m);var n=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=n+"px";mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,n-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(m,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(l,
-0<b.scrollLeft?100:50);mxUtils.setOpacity(m,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(m,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,n-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(m,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()};
+d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-c){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var k=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");k.style.position="absolute";k.style.right=this.editor.chromeless?"29px":"55px";k.style.fontSize="13pt";this.tabContainer.appendChild(k);var l=this.createControlTab(4,
+"&nbsp;&#10095;");l.style.position="absolute";l.style.right=this.editor.chromeless?"0px":"29px";l.style.fontSize="13pt";this.tabContainer.appendChild(l);var m=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=m+"px";mxEvent.addListener(k,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,m-20);mxUtils.setOpacity(k,0<b.scrollLeft?100:50);mxUtils.setOpacity(l,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(k,
+0<b.scrollLeft?100:50);mxUtils.setOpacity(l,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,m-20);mxUtils.setOpacity(k,0<b.scrollLeft?100:50);mxUtils.setOpacity(l,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="move";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 c=this.createTab(!0);c.style.paddingTop=a+"px";c.style.cursor="pointer";c.style.width="30px";c.style.lineHeight="30px";c.innerHTML=b;null!=c.firstChild&&null!=c.firstChild.style&&mxUtils.setOpacity(c.firstChild,40);return c};
@@ -8530,51 +8566,51 @@ null,mxUtils.bind(this,function(){this.renamePage(d,d.getName())}),b),a.addSepar
 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,c){c=this.createTab(c);var d=a.getName();c.setAttribute("title",d);mxUtils.write(c,d);c.style.maxWidth=b+"px";c.style.width=b+"px";this.addTabListeners(a,c);42<b&&(c.style.textOverflow="ellipsis");return c};
 EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var c=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,e=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;e=a==this.currentPage;c.isMouseDown||e||this.selectPage(a)}),null,mxUtils.bind(this,function(g){if(c.isEnabled()&&!c.isMouseDown&&(mxEvent.isTouchEvent(g)&&e||mxEvent.isPopupTrigger(g))){c.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(g)||!d){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 m=mxEvent.getClientX(g),n=mxEvent.getClientY(g);l.popup(m,n,null,g);this.setCurrentMenu(l,b)}mxEvent.consume(g)}}))};
+this.hideCurrentMenu();if(!mxEvent.isTouchEvent(g)||!d){var k=new mxPopupMenu(this.createPageMenu(a));k.div.className+=" geMenubarMenu";k.smartSeparators=!0;k.showDisabled=!0;k.autoExpand=!0;k.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(k,arguments);this.resetCurrentMenu();k.destroy()});var l=mxEvent.getClientX(g),m=mxEvent.getClientY(g);k.popup(l,m,null,g);this.setCurrentMenu(k,b)}mxEvent.consume(g)}}))};
 EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(c,d){c.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);c.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);c.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);c.addSeparator(d);c.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
 mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
 (function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
 (function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,e){e.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(e.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&e.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,c){return 0>mxUtils.indexOf(b,
 a)?c:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,e));return e};a.beforeDecode=function(a,b,e){e.ui=a.ui;e.relatedPage=e.ui.getPageById(b.getAttribute("relatedPage"));if(null==e.relatedPage){var c=b.ownerDocument.createElement("diagram");c.setAttribute("id",b.getAttribute("relatedPage"));c.setAttribute("name",b.getAttribute("name"));e.relatedPage=new DiagramPage(c);c=b.getAttribute("viewState");null!=c&&(e.relatedPage.viewState=JSON.parse(c),b.removeAttribute("viewState"));
 b=b.cloneNode(!0);c=b.firstChild;if(null!=c)for(e.relatedPage.root=a.decodeCell(c,!1),e=c.nextSibling,c.parentNode.removeChild(c),c=e;null!=c;){e=c.nextSibling;if(c.nodeType==mxConstants.NODETYPE_ELEMENT){var d=c.getAttribute("id");null==a.lookup(d)&&a.decodeCell(c)}c.parentNode.removeChild(c);c=e}}return b};a.afterDecode=function(a,b,e){e.index=e.previousIndex;return e};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";EditorUi.prototype.altShiftActions[68]=
-"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,c,d,m,n){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var e=d.slice(),g=[],l=0;l<d.length;l++){var q=this.view.getState(d[l]),u=null!=q?q.style:this.getCellStyle(d[l]);"1"==mxUtils.getValue(u,"treeFolding","0")&&(this.traverse(d[l],!0,mxUtils.bind(this,function(a,b){null!=b&&g.push(b);a!=d[l]&&g.push(a);return a==d[l]||!this.model.isCollapsed(a)})),
-this.model.setCollapsed(d[l],a))}for(l=0;l<g.length;l++)this.model.setVisible(g[l],!a);d=e;d=b.apply(this,arguments)}finally{this.model.endUpdate()}return d};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(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 m(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 n(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=m(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;p.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=p.view.getState(a),l=p.view.scale;if(null!=h){var k=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?k.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:k.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var n=p.getOutgoingEdges(p.model.getTerminal(d[0],!0));if(null!=n){for(var v=f==mxConstants.DIRECTION_SOUTH||
-f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var q=p.model.getTerminal(n[t],!1);if(f==m(q)){var u=p.view.getState(q);q!=a&&null!=u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY())&&mxUtils.intersects(k,u)&&(d=10+Math.max(d,(Math.min(k.x+k.width,u.x+u.width)-Math.max(k.x,u.x))/l),g=10+Math.max(g,(Math.min(k.y+k.height,u.y+u.height)-Math.max(k.y,u.y))/l))}}v?g=0:d=0;for(t=0;t<n.length;t++)if(q=p.model.getTerminal(n[t],!1),f==m(q)&&(u=p.view.getState(q),q!=a&&null!=
-u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY()))){var B=[];p.traverse(u.cell,!0,function(a,b){null!=b&&B.push(b);B.push(a);return!0});p.moveCells(B,(b?1:-1)*d,(b?1:-1)*g)}}}return p.addCells(e,c)}finally{p.model.endUpdate()}}function f(a){p.model.beginUpdate();try{var b=m(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,l=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,l=-40):b==mxConstants.DIRECTION_WEST?(h=-40,l=0):b==mxConstants.DIRECTION_EAST&&(l=0);p.moveCells(g,h,l);return p.addCells(d,e)}finally{p.model.endUpdate()}}function h(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 l=p.view.getBounds(f),k=m(a),n=p.view.translate,v=p.view.scale;k==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/v-n.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):k==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=
-null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/v-n.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=k==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)/v-n.y+-e.y+10);return p.addCells(d,b)}finally{p.model.endUpdate()}}function k(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=m(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=k(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())&&(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+D");var A=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 A.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 l=p.getIncomingEdges(h[e]),g=p.getIncomingEdges(a[e]);if(0==l.length&&0<g.length){var k=this.cloneCells([g[0]])[0];this.addEdge(k,p.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var w=p.moveCells;p.moveCells=function(a,c,d,e,f,g,h){var l=null;this.model.beginUpdate();try{var k=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 v=0;v<a.length;v++)if(b(a[v])||p.model.isEdge(a[v])&&null==p.model.getTerminal(a[v],!0)){f=p.model.getParent(a[v]);break}if(null!=k&&f!=k&&null!=this.view.getState(a[0])){var t=p.getIncomingEdges(a[0]);if(0<t.length){var q=p.view.getState(p.model.getTerminal(t[0],!0));if(null!=q){var u=p.view.getState(k);null!=u&&(c=(u.getCenterX()-q.getCenterX())/p.view.scale,d=(u.getCenterY()-q.getCenterY())/p.view.scale)}}}}l=w.apply(this,arguments);if(null!=l&&null!=a&&l.length==a.length)for(v=0;v<
-l.length;v++)if(this.model.isEdge(l[v]))b(k)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[v],!0))&&this.model.setTerminal(l[v],k,!0);else if(b(a[v])&&(t=p.getIncomingEdges(a[v]),0<t.length))if(!e)b(k)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],k,!0);else if(0==p.getIncomingEdges(l[v]).length){m=k;if(null==m||m==p.model.getParent(a[v]))m=p.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,p.getDefaultParent(),m,l[v])}}finally{this.model.endUpdate()}return l};
-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 l=p.getCellGeometry(g[h]);l.points=null;null!=l.getTerminalPoint(!0)&&l.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")},z=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)?f(p.getSelectionCell()):h(p.getSelectionCell()):13==a.which&&(c=n(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(M){console.log("error",M)}mxEvent.isConsumed(a)||z.apply(this,arguments)};var F=p.connectVertex;p.connectVertex=function(a,c,d,e,g,l){var k=p.getIncomingEdges(a);return b(a)&&0<k.length?(d=m(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,g=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?h(a):e==g?f(a):n(a,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)):
-F.call(this,a,c,d,e,g,l)};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"),this.moveHandle.style.position=
+"selectDescendants";var 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(),g=[],k=0;k<d.length;k++){var u=this.view.getState(d[k]),p=null!=u?u.style:this.getCellStyle(d[k]);"1"==mxUtils.getValue(p,"treeFolding","0")&&(this.traverse(d[k],!0,mxUtils.bind(this,function(a,b){null!=b&&g.push(b);a!=d[k]&&g.push(a);return a==d[k]||!this.model.isCollapsed(a)})),
+this.model.setCollapsed(d[k],a))}for(k=0;k<g.length;k++)this.model.setVisible(g[k],!a);d=e;d=b.apply(this,arguments)}finally{this.model.endUpdate()}return d};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return v.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=v.getParent(a),b=q.view.getState(a),q.view.getState(a),b="tree"==(null!=
+b?b.style:q.getCellStyle(a)).containerType);return b}function d(a){var b=!1;null!=a&&(a=v.getParent(a),b=q.view.getState(a),q.view.getState(a),b=null!=(null!=b?b.style:q.getCellStyle(a)).childLayout);return b}function l(a){a=q.view.getState(a);if(null!=a){var b=q.getIncomingEdges(a.cell);if(0<b.length&&(b=q.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;q.model.beginUpdate();try{var c=q.model.getParent(a),d=q.getIncomingEdges(a),e=q.cloneCells([d[0],a]);q.model.setTerminal(e[0],q.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;q.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=q.view.getState(a),k=q.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=q.getOutgoingEdges(q.model.getTerminal(d[0],!0));if(null!=n){for(var v=f==mxConstants.DIRECTION_SOUTH||
+f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var p=q.model.getTerminal(n[t],!1);if(f==l(p)){var u=q.view.getState(p);p!=a&&null!=u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY())&&mxUtils.intersects(m,u)&&(d=10+Math.max(d,(Math.min(m.x+m.width,u.x+u.width)-Math.max(m.x,u.x))/k),g=10+Math.max(g,(Math.min(m.y+m.height,u.y+u.height)-Math.max(m.y,u.y))/k))}}v?g=0:d=0;for(t=0;t<n.length;t++)if(p=q.model.getTerminal(n[t],!1),f==l(p)&&(u=q.view.getState(p),p!=a&&null!=
+u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY()))){var A=[];q.traverse(u.cell,!0,function(a,b){null!=b&&A.push(b);A.push(a);return!0});q.moveCells(A,(b?1:-1)*d,(b?1:-1)*g)}}}return q.addCells(e,c)}finally{q.model.endUpdate()}}function f(a){q.model.beginUpdate();try{var b=l(a),c=q.getIncomingEdges(a),d=q.cloneCells([c[0],a]);q.model.setTerminal(c[0],d[1],!1);q.model.setTerminal(d[0],d[1],!0);q.model.setTerminal(d[0],a,!1);var e=q.model.getParent(a),f=e.geometry,g=[];q.view.currentRoot!=
+e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);q.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);q.moveCells(g,h,k);return q.addCells(d,e)}finally{q.model.endUpdate()}}function h(a){q.model.beginUpdate();try{var b=q.model.getParent(a),c=q.getIncomingEdges(a),d=q.cloneCells([c[0],
+a]);q.model.setTerminal(d[0],a,!0);var c=q.getOutgoingEdges(a),e=b.geometry,f=[];q.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var h=q.model.getTerminal(c[g],!1);null!=h&&f.push(h)}var k=q.view.getBounds(f),m=l(a),n=q.view.translate,v=q.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)/v-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)/v-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)/v-n.y+-e.y+10);return q.addCells(d,b)}finally{q.model.endUpdate()}}function n(a,b,c){a=q.getOutgoingEdges(a);c=q.view.getState(c);var d=
+[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=q.view.getState(q.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 u(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?p.actions.get("selectParent").funct():
+c==b?(d=q.getOutgoingEdges(a),null!=d&&0<d.length&&q.setSelectionCell(q.model.getTerminal(d[0],!1))):(c=q.getIncomingEdges(a),null!=c&&0<c.length&&(d=n(q.model.getTerminal(c[0],!0),d,a),c=q.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&&q.setSelectionCell(d[c].cell)))))}var p=this,q=p.editor.graph,v=q.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings");
+mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=p.menus.createPopupMenu;p.menus.createPopupMenu=function(a,c,d){y.apply(this,arguments);if(1==q.getSelectionCount()){c=q.getSelectionCell();var e=q.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(q.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(q.getSelectionCell())&&(a.addSeparator(),0<q.getIncomingEdges(c).length&&
+this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};p.actions.addAction("selectChildren",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=q.getSelectionCell(),a=q.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(q.model.getTerminal(a[c],!1));q.setSelectionCells(b)}}},null,null,"Alt+Shift+X");p.actions.addAction("selectSiblings",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=q.getSelectionCell(),a=q.getIncomingEdges(a);if(null!=a&&0<a.length&&
+(a=q.getOutgoingEdges(q.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(q.model.getTerminal(a[c],!1));q.setSelectionCells(b)}}},null,null,"Alt+Shift+S");p.actions.addAction("selectParent",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=q.getSelectionCell(),a=q.getIncomingEdges(a);null!=a&&0<a.length&&q.setSelectionCell(q.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");p.actions.addAction("selectDescendants",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=
+q.getSelectionCell(),b=[];q.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});q.setSelectionCells(b)}},null,null,"Alt+Shift+D");var B=q.removeCells;q.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)?(q.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=q.getIncomingEdges(a[f]),
+a=a.concat(g)):e.push(a[f])}a=e;return B.apply(this,arguments)};p.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var t=q.duplicateCells;q.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=q.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=q.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=q.getIncomingEdges(h[e]),g=q.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,q.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var w=q.moveCells;q.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 v=0;v<a.length;v++)if(b(a[v])||q.model.isEdge(a[v])&&null==q.model.getTerminal(a[v],!0)){f=q.model.getParent(a[v]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var t=q.getIncomingEdges(a[0]);if(0<t.length){var p=q.view.getState(q.model.getTerminal(t[0],!0));if(null!=p){var u=q.view.getState(l);null!=u&&(c=(u.getCenterX()-p.getCenterX())/q.view.scale,d=(u.getCenterY()-p.getCenterY())/q.view.scale)}}}}k=w.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(v=0;v<
+k.length;v++)if(this.model.isEdge(k[v]))b(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[v],!0))&&this.model.setTerminal(k[v],l,!0);else if(b(a[v])&&(t=q.getIncomingEdges(a[v]),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==q.getIncomingEdges(k[v]).length){m=l;if(null==m||m==q.model.getParent(a[v]))m=q.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,q.getDefaultParent(),m,k[v])}}finally{this.model.endUpdate()}return k};
+if(null!=p.sidebar){var x=p.sidebar.dropAndConnect;p.sidebar.dropAndConnect=function(a,c,d,e){var f=q.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=q.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var C={88:p.actions.get("selectChildren"),84:p.actions.get("selectSubtree"),80:p.actions.get("selectParent"),
+83:p.actions.get("selectSiblings")},z=p.onKeyDown;p.onKeyDown=function(a){try{if(q.isEnabled()&&!q.isEditing()&&b(q.getSelectionCell())&&1==q.getSelectionCount()){var c=null;0<q.getIncomingEdges(q.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?f(q.getSelectionCell()):h(q.getSelectionCell()):13==a.which&&(c=m(q.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&q.model.isEdge(c[0])?q.setSelectionCell(q.model.getTerminal(c[0],!1)):q.setSelectionCell(c[c.length-
+1]),null!=p.hoverIcons&&p.hoverIcons.update(q.view.getState(q.getSelectionCell())),q.startEditingAtCell(q.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?(u(q.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(u(q.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(u(q.getSelectionCell(),mxConstants.DIRECTION_EAST),
+mxEvent.consume(a)):40==a.keyCode&&(u(q.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||z.apply(this,arguments)};var F=q.connectVertex;q.connectVertex=function(a,c,d,e,g,k){var n=q.getIncomingEdges(a);return b(a)&&0<n.length?(d=l(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,g=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?h(a):e==g?f(a):m(a,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)):
+F.call(this,a,c,d,e,g,k)};q.getSubtree=function(a){var c=[a];b(a)&&!d(a)&&q.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"),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 G=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){G.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+
 (40>this.state.height?10:0)+2+"px")};var I=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){I.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.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 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(g);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],
+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 u=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;");u.vertex=!0;var p=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+p.geometry.relative=!0;p.edge=!0;b.insertEdge(p,!0);u.insertEdge(p,!1);var q=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;");q.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);q.insertEdge(v,!1);a.insert(d);a.insert(g);a.insert(p);a.insert(v);a.insert(b);a.insert(c);a.insert(e);a.insert(u);a.insert(q);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",
 new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(c,"treeRoot","1");c.vertex=!0;var d=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;
-c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);a.insert(e);a.insert(k);a.insert(c);a.insert(d);a.insert(g);return sb.createVertexTemplateFromCells([a],
+c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");g.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);g.insertEdge(n,!1);a.insert(e);a.insert(n);a.insert(c);a.insert(d);a.insert(g);return sb.createVertexTemplateFromCells([a],
 a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
 a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
 a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,
@@ -8590,8 +8626,8 @@ this.window.setLocation=function(a,b){var c=window.innerHeight||document.documen
 mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
 mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
 "0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.prototype.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight=46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert=!0;Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
-function(){return!1};var g=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");g.apply(this,arguments)};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var m=Menus.prototype.addShortcut;Menus.prototype.addShortcut=
-function(a,b){null!=b.shortcut&&900>c&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):m.apply(this,arguments)};var n=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){n.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)";
+function(){return!1};var g=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");g.apply(this,arguments)};var k=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){k.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var l=Menus.prototype.addShortcut;Menus.prototype.addShortcut=
+function(a,b){null!=b.shortcut&&900>c&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):l.apply(this,arguments)};var m=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){m.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)";
 a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("changeUser"))}};var f=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){f.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";
 a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==)";
 a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("share"))}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");a.style.display="inline-block";a.style.position="relative";a.style.marginTop="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));
@@ -8600,21 +8636,21 @@ mxResources.get("saveAndExit")),b.className="geMenuItem gePrimaryBtn",b.style.fo
 b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};Sidebar.prototype.getTooltipOffset=function(){var a=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);a.y+=40;return a};var h=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;h.apply(this,arguments);
 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()});1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editStyle","editGeometry","-"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-","lockUnlock","enterGroup"],
 null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("insert",a),this.addSubmenu("layout",a),a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b?
-!1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var k=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
+!1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
 this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=
-null);k.apply(this,arguments)};var q=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){q.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var u=Menus.prototype.init;Menus.prototype.init=function(){u.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text");
+null);n.apply(this,arguments)};var u=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){u.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var p=Menus.prototype.init;Menus.prototype.init=function(){p.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text");
 c.actions.get("insertText").label=mxResources.get("text");c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("insertRectangle").label=mxResources.get("rectangle");c.actions.get("insertEllipse").label=mxResources.get("ellipse");c.actions.get("insertRhombus").label=mxResources.get("rhombus");c.actions.get("insertImage").label=mxResources.get("image")+"...";c.actions.get("insertLink").label=mxResources.get("link")+"...";c.actions.get("createShape").label=mxResources.get("shape")+
 "...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importFile",new Action("File...",function(){d.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&c.importFiles(a.files,null,null,c.maxImageSize)});a.click()}));c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();
 c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat",
-new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,
-"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime&&c.menus.addMenuItems(a,["chatWindowTitle"],
-b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a,b)}}this.put("save",new Menu(mxUtils.bind(this,
-function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"],b);c.menus.addMenuItems(a,["-","autosave"],
-b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a,["scrollbars","tooltips"],
-b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+
-mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
+new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
+c.menus.addMenuItems(a,"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime?c.menus.addMenuItems(a,["chatWindowTitle"],
+b):c.menus.addMenuItems(a,["-","refresh"],b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a,
+b)}}this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"],
+b);c.menus.addMenuItems(a,["-","autosave"],b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a,
+["scrollbars","tooltips"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout"));
+mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
 l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=
-c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var p=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=m.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),l);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
+c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var q=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=m.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),l);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
 f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
 "right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage=
 "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor=
@@ -8629,13 +8665,13 @@ d([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.tra
 640<=c?b("",e.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",e,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="):
 null,640<=c?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="):
 null])}e=g.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=c?(f=m.addMenu("",e.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)",
-f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}p.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
+f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}q.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
 f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var l=null,m=new Menubar(g,k);g.statusContainer=
 g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var n=g.descriptorChanged;g.descriptorChanged=function(){n.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=
 a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer=
-document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,q=document.createElement("div");q.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!=
+document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,p=document.createElement("div");p.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!=
 u){this.tabContainer.style.right="70px";var D=m.addMenu("100%",u.funct);D.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");D.style.whiteSpace="nowrap";D.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";D.style.backgroundPosition="right 6px center";D.style.backgroundRepeat="no-repeat";D.style.backgroundColor="#ffffff";D.style.paddingRight="10px";D.style.display="block";D.style.position="absolute";D.style.textDecoration="none";D.style.textDecoration="none";D.style.right=
-"0px";D.style.bottom="0px";D.style.overflow="hidden";D.style.visibility="hidden";D.style.textAlign="center";D.style.color="#000";D.style.fontSize="12px";D.style.color="#707070";D.style.width="59px";D.style.borderTop="1px solid lightgray";D.style.borderLeft="1px solid lightgray";D.style.height=parseInt(g.tabContainer.style.height)-1+"px";D.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";q.appendChild(D);u=mxUtils.bind(this,function(){D.innerHTML=Math.round(100*g.editor.graph.view.scale)+
-"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var H=g.setGraphEnabled;g.setGraphEnabled=function(){H.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}q.appendChild(g.tabContainer);q.appendChild(k);q.appendChild(g.diagramContainer);f.appendChild(q);g.updateTabContainer();
+"0px";D.style.bottom="0px";D.style.overflow="hidden";D.style.visibility="hidden";D.style.textAlign="center";D.style.color="#000";D.style.fontSize="12px";D.style.color="#707070";D.style.width="59px";D.style.borderTop="1px solid lightgray";D.style.borderLeft="1px solid lightgray";D.style.height=parseInt(g.tabContainer.style.height)-1+"px";D.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";p.appendChild(D);u=mxUtils.bind(this,function(){D.innerHTML=Math.round(100*g.editor.graph.view.scale)+
+"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var H=g.setGraphEnabled;g.setGraphEnabled=function(){H.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}p.appendChild(g.tabContainer);p.appendChild(k);p.appendChild(g.diagramContainer);f.appendChild(p);g.updateTabContainer();
 e();mxEvent.addListener(window,"resize",function(){e();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}};
 (function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();
diff --git a/src/main/webapp/js/atlas-viewer.min.js b/src/main/webapp/js/atlas-viewer.min.js
index 8bb9a7b89..0033ad7d9 100644
--- a/src/main/webapp/js/atlas-viewer.min.js
+++ b/src/main/webapp/js/atlas-viewer.min.js
@@ -2,6 +2,7 @@ window.STENCIL_PATH=window.STENCIL_PATH||"https://www.draw.io/stencils";window.S
 //fgnass.github.com/spin.js#v2.0.0
 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
 // NOTE: Modified to support data URIs for images, ie. data:image/*
+// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break"
 (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","),
 "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","),
 "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","),
@@ -26,7 +27,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
 J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X;
@@ -664,7 +665,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
@@ -1955,9 +1956,9 @@ x.style.color=.5>.213*this.rgb[0]+.715*this.rgb[1]+.072*this.rgb[2]?"#FFF":"#000
 this.rgb[1]=b;var e=null===c?this.rgb[2]:this.rgb[2]=c,f=Math.min(Math.min(a,b),e);c=Math.max(Math.max(a,b),e);var g=c-f;0===g?a=[null,0,c]:(a=a===f?3+(e-b)/g:b===f?5+(a-e)/g:1+(b-a)/g,a=[6===a?0:a,g/c,c]);null!==a[0]&&(this.hsv[0]=a[0]);0!==a[2]&&(this.hsv[1]=a[1]);this.hsv[2]=a[2];this.exportColor(d)};this.fromString=function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4,
 2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=jscolor.fetchElement(this.valueElement),x=jscolor.fetchElement(this.styleElement),
 y=!1,A=!1,z=1,v=2,B=4,C=8;u&&(q=function(){r.fromString(u.value,z);p()},jscolor.addEvent(u,"keyup",q),jscolor.addEvent(u,"input",q),jscolor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,color:x.style.color});switch(t){case 0:jscolor.requireImage("hs.png");break;case 1:jscolor.requireImage("hv.png")}this.importColor()}};jscolor.install();
-Editor=function(a,d,e,b,h){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=b||this.createGraph(d,e);this.editable=null!=h?h:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
-function(){return this.status};this.graphChangeListener=function(a,b){var d=null!=b?b.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
-(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(d){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
+Editor=function(a,b,e,d,k){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=k?k:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
+function(){return this.status};this.graphChangeListener=function(a,d){var b=null!=d?d.getProperty("edit"):null;null!=b&&b.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
+(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
 Editor.helpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5BxTwAAAAH3RSTlMAlUF8boNQIE0LBgOgkGlHNSwqFIx/dGVUOjApmV9ezNACSAAAAIVJREFUGNNtjNsOgzAMQ5NeoVcKDAZs+//PXLKI8YKlWvaRU7jXuFpb9qsbdK05XILUiE8JHQox1Pv3OgFUzf1AGqWqUg+QBwLF0YAeegBlCNgRWOpB5vUfTCmeoHQ/wNdy0jLH/cM+b+wLTw4n/7ACEmHVVy8h6qy8V7MNcGowWpsNbvUFcGUEdSi1s/oAAAAASUVORK5CYII=":IMAGE_PATH+
 "/help.png";
 Editor.checkmarkImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhFQAVAMQfAGxsbHx8fIqKioaGhvb29nJycvr6+sDAwJqamltbW5OTk+np6YGBgeTk5Ly8vJiYmP39/fLy8qWlpa6ursjIyOLi4vj4+N/f3+3t7fT09LCwsHZ2dubm5r6+vmZmZv///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEY4NTZERTQ5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEY4NTZERTU5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Rjg1NkRFMjlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Rjg1NkRFMzlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAB8ALAAAAAAVABUAAAVI4CeOZGmeaKqubKtylktSgCOLRyLd3+QJEJnh4VHcMoOfYQXQLBcBD4PA6ngGlIInEHEhPOANRkaIFhq8SuHCE1Hb8Lh8LgsBADs=":IMAGE_PATH+
@@ -1976,26 +1977,26 @@ Editor.previousLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAA
 Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.popupsAllowed=!0;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;
 Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))};
 Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a};
-Editor.prototype.editAsNew=function(a,d){var e=null!=d?"?title="+encodeURIComponent(d):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+
-(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,d){var e=new Graph(null,d,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e};
+Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(d){"ready"==d.data&&d.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+
+(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,b){var e=new Graph(null,b,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e};
 Editor.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView()||"1"==urlParams.grid;this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=this.graph.defaultGraphBackground;
 this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
 Editor.prototype.readGraphState=function(a){this.graph.gridEnabled="0"!=a.getAttribute("grid")&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=a.getAttribute("guides");this.graph.setTooltips("0"!=a.getAttribute("tooltips"));this.graph.setConnectable("0"!=a.getAttribute("connect"));this.graph.connectionArrowsEnabled="0"!=a.getAttribute("arrows");this.graph.foldingEnabled=
-"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var d=parseFloat(a.getAttribute("pageScale"));!isNaN(d)&&0<d?this.graph.pageScale=d:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(d=a.getAttribute("page"),this.graph.pageVisible=null!=d?"0"!=d:this.graph.defaultPageVisible);this.graph.pageBreaksVisible=
-this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(d)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,d,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground};
-Editor.prototype.setGraphXml=function(a){if(null!=a){var d=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),d.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=d.document.createElement("mxGraphModel");e.appendChild(a);d.decode(e,this.graph.getModel());
+"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var b=parseFloat(a.getAttribute("pageScale"));!isNaN(b)&&0<b?this.graph.pageScale=b:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(b=a.getAttribute("page"),this.graph.pageVisible=null!=b?"0"!=b:this.graph.defaultPageVisible);this.graph.pageBreaksVisible=
+this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var b=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(b)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,b,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground};
+Editor.prototype.setGraphXml=function(a){if(null!=a){var b=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),b.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=b.document.createElement("mxGraphModel");e.appendChild(a);b.decode(e,this.graph.getModel());
 this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))}else throw{message:mxResources.get("cannotOpenFile"),node:a,toString:function(){return this.message}};}else this.resetGraph(),this.graph.model.clear(),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,d=new mxUndoManager;this.undoListener=function(a,e){d.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,d){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,d){for(var e=a.getSelectionCellsForChanges(d.getProperty("edit").changes),h=a.getModel(),q=[],u=0;u<e.length;u++)(h.isVertex(e[u])||h.isEdge(e[u]))&&null!=a.view.getState(e[u])&&
-q.push(e[u]);a.setSelectionCells(q)};d.addListener(mxEvent.UNDO,e);d.addListener(mxEvent.REDO,e);return d};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,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(d,b){for(var e=a.getSelectionCellsForChanges(b.getProperty("edit").changes),k=a.getModel(),q=[],u=0;u<e.length;u++)(k.isVertex(e[u])||k.isEdge(e[u]))&&null!=a.view.getState(e[u])&&
+q.push(e[u]);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,d,e,b,h,m,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;b+=c;var f=e,g=b,k=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),l=Math.max(1,Math.round((k-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(d.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);
-b=Math.min(b,k-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=k+"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 n=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=n.x+"px";this.bg.style.top=n.y+"px";r+=n.x;l+=n.y;h&&
-document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");h=this.getPosition(r,l,e,b);r=h.x;l=h.y;w.style.width=e+"px";w.style.height=b+"px";w.style.left=r+"px";w.style.top=l+"px";w.style.zIndex=this.zIndex;w.appendChild(d);document.body.appendChild(w);!q&&d.clientHeight>w.clientHeight-64&&(d.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=l+14+"px",m.style.left=r+e+38-c+"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(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){k=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=k+"px";r=Math.max(1,Math.round((document.body.clientWidth-
-e-64)/2));l=Math.max(1,Math.round((k-b-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);b=Math.min(g,k-64);var n=this.getPosition(r,l,e,b);r=n.x;l=n.y;w.style.left=r+"px";w.style.top=l+"px";w.style.width=e+"px";w.style.height=b+"px";!q&&d.clientHeight>w.clientHeight-64&&(d.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=l+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;this.container=
+function Dialog(a,b,e,d,k,l,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;d+=c;var f=e,g=d,n=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),h=Math.max(1,Math.round((n-d-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);
+d=Math.min(d,n-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=n+"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 m=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=m.x+"px";this.bg.style.top=m.y+"px";r+=m.x;h+=m.y;k&&
+document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");k=this.getPosition(r,h,e,d);r=k.x;h=k.y;w.style.width=e+"px";w.style.height=d+"px";w.style.left=r+"px";w.style.top=h+"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=h+14+"px",l.style.left=r+e+38-c+"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(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){n=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=n+"px";r=Math.max(1,Math.round((document.body.clientWidth-
+e-64)/2));h=Math.max(1,Math.round((n-d-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);d=Math.min(g,n-64);var m=this.getPosition(r,h,e,d);r=m.x;h=m.y;w.style.left=r+"px";w.style.top=h+"px";w.style.width=e+"px";w.style.height=d+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=h+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;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";
@@ -2004,150 +2005,150 @@ Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKA
 Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCODExNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCODIxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3RjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI4MDE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvqMCFYAAAAVUExURZmZmb+/v7KysqysrMzMzLGxsf///4g8N1cAAAAHdFJOU////////wAaSwNGAAAAPElEQVR42lTMQQ4AIQgEwUa0//9kTQirOweYOgDqAMbZUr10AGlAwx4/BJ2QJ4U0L5brYjovvpv32xZgAHZaATFtMbu4AAAAAElFTkSuQmCC":IMAGE_PATH+
 "/locked.png";
 Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
-"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,d){return new mxPoint(a,d)};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,d){this.create(a,d)};
-PrintDialog.prototype.create=function(a){function d(a){var b=q.checked||c.checked,d=parseInt(g.value)/100;isNaN(d)&&(d=1,g.value="100%");var d=.75*d,k=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(b){var h=q.checked?1:parseInt(f.value);isNaN(h)||(r=mxUtils.getScaleForPageCount(h,e,k))}e.getGraphBounds();var y=h=0,k=mxRectangle.fromRectangle(k);k.width=Math.ceil(k.width*d);k.height=Math.ceil(k.height*d);r*=d;!b&&e.pageVisible?(d=e.getPageLayout(),h-=d.x*k.width,y-=d.y*k.height):
-b=!0;b=PrintDialog.createPrintPreview(e,r,k,0,h,y,b);b.open();a&&PrintDialog.printPreview(b)}var e=a.editor.graph,b,h,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var p=document.createElement("tbody");b=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");h=document.createElement("td");h.setAttribute("colspan","2");h.style.fontSize="10pt";h.appendChild(q);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage"));
-h.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});b.appendChild(h);p.appendChild(b);b=b.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");h.appendChild(u);mxEvent.addListener(u,
-"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});b.appendChild(h);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";h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(f);mxUtils.write(h," "+mxResources.get("pages")+" (max)");b.appendChild(h);p.appendChild(b);mxEvent.addListener(c,"change",
-function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});b=b.cloneNode(!1);h=document.createElement("td");mxUtils.write(h,mxResources.get("pageScale")+":");b.appendChild(h);h=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";h.appendChild(g);b.appendChild(h);p.appendChild(b);b=document.createElement("tr");h=document.createElement("td");h.colSpan=2;
-h.style.paddingTop="20px";h.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&h.appendChild(u);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)});k.className="geBtn";h.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});k.className="geBtn gePrimaryBtn";h.appendChild(k);a.editor.cancelFirst||
-h.appendChild(u);b.appendChild(h);p.appendChild(b);m.appendChild(p);this.container=m};PrintDialog.printPreview=function(a){if(null!=a.wnd){var d=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(d,500):d()}};
-PrintDialog.createPrintPreview=function(a,d,e,b,h,m,p){d=new mxPrintPreview(a,d,e,b,h,m);d.title=mxResources.get("preview");d.printBackgroundImage=!0;d.autoOrigin=p;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";d.backgroundColor=a;var q=d.writeHead;d.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 d};
+"/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 d=q.checked||c.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,n=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(d){var k=q.checked?1:parseInt(f.value);isNaN(k)||(r=mxUtils.getScaleForPageCount(k,e,n))}e.getGraphBounds();var y=k=0,n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*b);n.height=Math.ceil(n.height*b);r*=b;!d&&e.pageVisible?(b=e.getPageLayout(),k-=b.x*n.width,y-=b.y*n.height):
+d=!0;d=PrintDialog.createPrintPreview(e,r,n,0,k,y,d);d.open();a&&PrintDialog.printPreview(d)}var e=a.editor.graph,d,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var p=document.createElement("tbody");d=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 u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage"));
+k.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});d.appendChild(k);p.appendChild(d);d=d.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");k.appendChild(u);mxEvent.addListener(u,
+"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});d.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)");d.appendChild(k);p.appendChild(d);mxEvent.addListener(c,"change",
+function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});d=d.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");d.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);d.appendChild(k);p.appendChild(d);d=document.createElement("tr");k=document.createElement("td");k.colSpan=2;
+k.style.paddingTop="20px";k.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&k.appendChild(u);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});n.className="geBtn";k.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});n.className="geBtn gePrimaryBtn";k.appendChild(n);a.editor.cancelFirst||
+k.appendChild(u);d.appendChild(k);p.appendChild(d);l.appendChild(p);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,d,k,l,p){b=new mxPrintPreview(a,b,e,d,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=p;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 d(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.style.backgroundImage="")}function e(){null==r?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxResources.get("change")+"..."):(k.setAttribute("title",r.src),k.style.fontSize="11px",k.innerHTML=r.src.substring(0,42)+"...")}var b=a.editor.graph,h,m,p=document.createElement("table");p.style.width=
-"100%";p.style.height="100%";var q=document.createElement("tbody");h=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");h.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var u=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",b.pageFormat);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");
-mxUtils.write(m,mxResources.get("background")+":");h.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=b.background;d();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;d()});mxEvent.consume(c)});
-m.appendChild(c);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=b.getGridSize();m.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?b.getGridSize():a)});h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,mxResources.get("image")+
-":");h.appendChild(m);m=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var r=b.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();m.appendChild(k);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align","right");var l=
-mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&m.appendChild(l);var n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==g.value&&b.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=b.background==f;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
-c.ignoreColor&&c.ignoreImage||b.model.execute(c)});n.className="geBtn gePrimaryBtn";m.appendChild(n);a.editor.cancelFirst||m.appendChild(l);h.appendChild(m);q.appendChild(h);p.appendChild(q);this.container=p};
-PageSetupDialog.addPageFormatPanel=function(a,d,e,b){function h(a,c,b){if(b||g!=document.activeElement&&k!=document.activeElement){a=!1;for(c=0;c<l.length;c++)b=l[c],B?"custom"==b.key&&(q.value=b.key,B=!1):null!=b.format&&("a4"==b.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==b.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==b.format.width&&
-e.height==b.format.height?(q.value=b.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==b.format.height&&e.height==b.format.width&&(q.value=b.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,k.value=e.height/100,m.setAttribute("checked","checked"),
-q.value="custom",u.style.display="none",f.style.display="")}}d="format-"+d;var m=document.createElement("input");m.setAttribute("name",d);m.setAttribute("type","radio");m.setAttribute("value","portrait");var p=document.createElement("input");p.setAttribute("name",d);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px";
-u.style.height="24px";m.style.marginRight="6px";u.appendChild(m);d=document.createElement("span");d.style.maxWidth="100px";mxUtils.write(d,mxResources.get("portrait"));u.appendChild(d);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);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 k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";f.appendChild(k);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},l=PageSetupDialog.getFormats(),n=0;n<l.length;n++){var w=l[n];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var B=!1;h();a.appendChild(q);mxUtils.br(a);
-a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var d=r[q.value];null!=d.format?(g.value=d.format.width/100,k.value=d.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");d=parseFloat(g.value);if(isNaN(d)||0>=d)g.value=e.width/100;d=parseFloat(k.value);if(isNaN(d)||0>=d)k.value=e.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(k.value)));"custom"!=q.value&&p.checked&&(d=new mxRectangle(0,0,
-d.height,d.width));c&&B||d.width==y.width&&d.height==y.height||(y=d,null!=b&&b(y))};mxEvent.addListener(d,"click",function(a){m.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(k,"blur",t);mxEvent.addListener(k,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(m,"change",t);mxEvent.addListener(q,"change",function(a){B="custom"==q.value;
-t(a,!0)});t();return{set:function(a){e=a;h(null,null,!0)},get:function(){return y},widthInput:g,heightInput:k}};
+var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.style.backgroundImage="")}function e(){null==r?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",r.src),n.style.fontSize="11px",n.innerHTML=r.src.substring(0,42)+"...")}var d=a.editor.graph,k,l,p=document.createElement("table");p.style.width=
+"100%";p.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 u=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",d.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 c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=d.background;b();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(c)});
+l.appendChild(c);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=d.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?d.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 n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var r=d.backgroundImage;mxEvent.addListener(n,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();l.appendChild(n);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 m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.gridSize!==g.value&&d.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=d.background==f;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=r?r.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==c.previousFormat.height&&
+c.ignoreColor&&c.ignoreImage||d.model.execute(c)});m.className="geBtn gePrimaryBtn";l.appendChild(m);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);q.appendChild(k);p.appendChild(q);this.container=p};
+PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function k(a,c,d){if(d||g!=document.activeElement&&n!=document.activeElement){a=!1;for(c=0;c<h.length;c++)d=h[c],A?"custom"==d.key&&(q.value=d.key,A=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
+e.height==d.format.height?(q.value=d.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,n.value=e.height/100,l.setAttribute("checked","checked"),
+q.value="custom",u.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 p=document.createElement("input");p.setAttribute("name",b);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px";
+u.style.height="24px";l.style.marginRight="6px";u.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));u.appendChild(b);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);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 n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";f.appendChild(n);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},h=PageSetupDialog.getFormats(),m=0;m<h.length;m++){var w=h[m];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var A=!1;k();a.appendChild(q);mxUtils.br(a);
+a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var b=r[q.value];null!=b.format?(g.value=b.format.width/100,n.value=b.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");b=parseFloat(g.value);if(isNaN(b)||0>=b)g.value=e.width/100;b=parseFloat(n.value);if(isNaN(b)||0>=b)n.value=e.height/100;b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(n.value)));"custom"!=q.value&&p.checked&&(b=new mxRectangle(0,0,
+b.height,b.width));c&&A||b.width==y.width&&b.height==y.height||(y=b,null!=d&&d(y))};mxEvent.addListener(b,"click",function(a){l.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(n,"blur",t);mxEvent.addListener(n,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(l,"change",t);mxEvent.addListener(q,"change",function(a){A="custom"==q.value;
+t(a,!0)});t();return{set:function(a){e=a;k(null,null,!0)},get:function(){return y},widthInput:g,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}]};
-(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect=
+(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var d=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(d),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect=
 mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(c){a.dblClick(c)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c))}),
-mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=
-null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=b&&this.gridColor!=b.toLowerCase()?this.gridColor:"#ffffff",d="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(d=unescape(encodeURIComponent(this.createSvgGrid(c))),d=window.btoa?btoa(d):Base64.encode(d,!0),d="url(data:image/svg+xml;base64,"+d+")",g=a.gridSize*this.scale*this.gridSteps):
-d="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,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=g,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=[],g=1;g<this.gridSteps;g++){var e=g*b;d.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+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,d){a.apply(this,arguments);if(null!=this.shiftPreview1){var c=
-this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,r=d*this.pageScale,l=this.view.getBackgroundPageBounds();b=l.width;c=l.height;var n=
-new mxRectangle(d*g.x,d*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(n.width,n.height)>this.minPageBreakDist)?Math.ceil(c/n.height)-1:0,v=a?Math.ceil(b/n.width)-1:0,h=l.x+b,y=l.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),Math.round(l.y+(b+1)*n.height)),
-new mxPoint(Math.round(h),Math.round(l.y+(b+1)*n.height))]:[new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(l.y)),new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(y))];null!=a[b]?(a[b].points=d,a[b].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[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
-var d=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){for(var f=0;f<b.length;f++)if(this.graph.getModel().isVertex(b[f])){var g=this.graph.getCellGeometry(b[f]);if(null!=g&&g.relative)return!1}return d.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.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,g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),r=Math.floor(Math.min(0,
-c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-r)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,d){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=d+"px")};var h=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=h.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 b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=m.apply(this,arguments),g=b.getParent(d);
-if(null==c||c!=d&&c!=g)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(g)&&b.isVertex(g)&&!this.graph.isContainer(g);)d=g,g=this.graph.getModel().getParent(d);return d};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=p.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),g=d.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&d.isVertex(g)){c=!0;break}g=d.getParent(g)}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,d,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=d||document.body;var b=this.editor.graph;b.lightbox=e;b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
-this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var h=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||b.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=h,this.menubarContainer.onmousedown=
-h,this.toolbarContainer.onselectstart=h,this.toolbarContainer.onmousedown=h,this.diagramContainer.onselectstart=h,this.diagramContainer.onmousedown=h,this.sidebarContainer.onselectstart=h,this.sidebarContainer.onmousedown=h,this.formatContainer.onselectstart=h,this.formatContainer.onmousedown=h,this.footerContainer.onselectstart=h,this.footerContainer.onmousedown=h,null!=this.tabContainer&&(this.tabContainer.onselectstart=h));!this.editor.chromeless||this.editor.editable?(d=function(a){var c=mxEvent.getSource(a);
-if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return h(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",d):this.diagramContainer.oncontextmenu=d):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(d=b.view.getDrawPane().ownerSVGElement,null!=d&&(d.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
-mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var m=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return m||p.apply(this,arguments)};this.keydownHandler=
-mxUtils.bind(this,function(a){32==a.which?(m=!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="";m=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=b.panningHandler.isForcePanningEvent;b.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 u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.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 c=!1,f=null,g=null,k=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,d=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),d.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==k)this.toolbar.createTextToolbar();else{for(var l=0;l<k.length;l++)this.toolbar.container.appendChild(k[l]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
-g}c=b.cellEditor.isContentEditing();f=a;g=e;k=d}}),l=this,n=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){n.apply(this,arguments);r();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!=l.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d=
-d.substring(0,d.length-1));l.toolbar.setFontName(d);l.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,c){w.apply(this,arguments);r()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";
-if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(A){}var v=b.fireMouseEvent;b.fireMouseEvent=function(a,c,b){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,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var B="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="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=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(d.push(c.style[g]),f.push(g));g=b.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],l=0;l<e.length;l++){var k=e[l],
-n=k.indexOf("=");0<=n&&(g=k.substring(0,n),k=k.substring(n+1),null!=a[g]&&"none"==k&&(d.push(k),f.push(g)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"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 t=
-["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(d=0;d<H[a].length;d++)B.push(H[a][d]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(B,y[a])&&B.push(y[a]);var G=function(a,c){var d=b.getModel();
-d.beginUpdate();try{if(c)for(var f=d.isEdge(l),g=f?b.currentEdgeStyle:b.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var k=g[f[e]];null!=k&&b.setCellStyles(f[e],k,a)}else for(k=0;k<a.length;k++){for(var l=a[k],n=d.getStyle(l),r=null!=n?n.split(";"):[],F=B.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),h=mxUtils.indexOf(F,w);0<=h&&F.splice(h,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var A=0;A<
-z.length;A++){var m=mxUtils.indexOf(F,z[A]);0<=m&&F.splice(m,1)}}}}for(var g=(f=d.isEdge(l))?b.currentEdgeStyle:b.currentVertexStyle,p=d.getStyle(l),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}d.setStyle(l,p)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});b.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,
-function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));G(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),f=!1,g=!1;if(0<d.length)for(var e=0;e<d.length&&(f=b.getModel().isVertex(d[e])||f,!(g=b.getModel().isEdge(d[e])||g)||!f);e++);else g=f=!0;for(var d=c.getProperty("keys"),k=c.getProperty("values"),e=0;e<d.length;e++){var l=0<=mxUtils.indexOf(t,d[e]);if("strokeColor"!=d[e]||null!=k[e]&&"none"!=
-k[e])if(0<=mxUtils.indexOf(y,d[e]))g||0<=mxUtils.indexOf(z,d[e])?null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]:f&&0<=mxUtils.indexOf(B,d[e])&&(null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e]);else if(0<=mxUtils.indexOf(B,d[e])){if(f||l)null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e];if(g||l||0<=mxUtils.indexOf(z,d[e]))null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
-Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
-b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?
-"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
-this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),f=c.getProperty("parent");b.getModel().isLayer(f)&&!b.isCellVisible(f)&&null!=d&&0<d.length&&b.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
+mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=d,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=
+null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,d=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=d&&this.gridColor!=d.toLowerCase()?this.gridColor:"#ffffff",b="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(b=unescape(encodeURIComponent(this.createSvgGrid(c))),b=window.btoa?btoa(b):Base64.encode(b,!0),b="url(data:image/svg+xml;base64,"+b+")",g=a.gridSize*this.scale*this.gridSteps):
+b="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.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=
+d,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=d,c.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var c=this.gridSteps*d,b=[],g=1;g<this.gridSteps;g++){var e=g*d;b.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+c)}return'<svg width="'+
+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+b.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(d,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var c=
+this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+d,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,d,c){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,r=b*this.pageScale,h=this.view.getBackgroundPageBounds();d=h.width;c=h.height;var m=
+new mxRectangle(b*g.x,b*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(m.width,m.height)>this.minPageBreakDist)?Math.ceil(c/m.height)-1:0,v=a?Math.ceil(d/m.width)-1:0,k=h.x+d,y=h.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,d=0;d<=c;d++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(d+1)*m.height)),
+new mxPoint(Math.round(k),Math.round(h.y+(d+1)*m.height))]:[new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(y))];null!=a[d]?(a[d].points=b,a[d].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[d]=b)}for(d=c;d<a.length;d++)a[d].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,d,c){for(var f=0;f<d.length;f++)if(this.graph.getModel().isVertex(d[f])){var g=this.graph.getCellGeometry(d[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(d,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(),d=0<a.width?a.x/this.scale-this.translate.x:0,c=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,d)/e),r=Math.floor(Math.min(0,
+c)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*b),this.scale*(Math.ceil(Math.max(1,d+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/b)-r)*b)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,d,c,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 d=this.graph.getModel(),c=d.getParent(this.graph.getSelectionCell()),b=l.apply(this,arguments),g=d.getParent(b);
+if(null==c||c!=b&&c!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&d.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,d){var c=p.apply(this,arguments);if(!c)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){c=!0;break}g=b.getParent(g)}return c};mxGraphHandler.prototype.selectDelayed=
+function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var d=a.getCell();null==d&&(d=this.cell);var c=this.graph.view.getState(d);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),b=c.getParent(d);!this.graph.isCellSelected(b)&&c.isVertex(b);)d=b,b=c.getParent(d);this.graph.selectCellForEvent(d,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var d=this.graph.getModel(),c=d.getParent(a);d.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
+(a=c),c=d.getParent(c);return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
+this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||d.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 c=mxEvent.getSource(a);
+if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
+mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var l=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return l||p.apply(this,arguments)};this.keydownHandler=
+mxUtils.bind(this,function(a){32==a.which?(l=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.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){d.container.style.cursor="";l=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=d.panningHandler.isForcePanningEvent;d.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 u=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return u.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 c=!1,f=null,g=null,n=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=d.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==n)this.toolbar.createTextToolbar();else{for(var h=0;h<n.length;h++)this.toolbar.container.appendChild(n[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
+g}c=d.cellEditor.isContentEditing();f=a;g=e;n=b}}),h=this,m=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){m.apply(this,arguments);r();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=d.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=h.toolbar)){var b=c.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(c.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var w=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){w.apply(this,arguments);r()};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";
+if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(B){}var v=d.fireMouseEvent;d.fireMouseEvent=function(a,c,d){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,d){this.menus.createPopupMenu(a,c,d)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
+this.getKeyHandler=function(){return keyHandler};var A="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=d.view.getState(a);if(null!=c){a=a.clone();a.style="";a=d.getCellStyle(a);var b=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(b.push(c.style[g]),f.push(g));g=d.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],h=0;h<e.length;h++){var n=e[h],
+m=n.indexOf("=");0<=m&&(g=n.substring(0,m),n=n.substring(m+1),null!=a[g]&&"none"==n&&(b.push(n),f.push(g)))}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[c.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var t=
+["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(b=0;b<H[a].length;b++)A.push(H[a][b]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(A,y[a])&&A.push(y[a]);var G=function(a,c){var b=d.getModel();
+b.beginUpdate();try{if(c)for(var f=b.isEdge(n),g=f?d.currentEdgeStyle:d.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var h=g[f[e]];null!=h&&d.setCellStyles(f[e],h,a)}else for(h=0;h<a.length;h++){for(var n=a[h],m=b.getStyle(n),r=null!=m?m.split(";"):[],F=A.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),k=mxUtils.indexOf(F,w);0<=k&&F.splice(k,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var B=0;B<
+z.length;B++){var l=mxUtils.indexOf(F,z[B]);0<=l&&F.splice(l,1)}}}}for(var g=(f=b.isEdge(n))?d.currentEdgeStyle:d.currentVertexStyle,p=b.getStyle(n),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}b.setStyle(n,p)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,
+function(a,c){var d=[c.getProperty("cell")];c.getProperty("terminalInserted")&&d.push(c.getProperty("terminal"));G(d)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),h=c.getProperty("values"),e=0;e<b.length;e++){var n=0<=mxUtils.indexOf(t,b[e]);if("strokeColor"!=b[e]||null!=h[e]&&"none"!=
+h[e])if(0<=mxUtils.indexOf(y,b[e]))g||0<=mxUtils.indexOf(z,b[e])?null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]:f&&0<=mxUtils.indexOf(A,b[e])&&(null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e]);else if(0<=mxUtils.indexOf(A,b[e])){if(f||n)null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e];if(g||n||0<=mxUtils.indexOf(z,b[e]))null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||
+Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
+d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?
+"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
+this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
 this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,
-"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()};
+"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()};
 mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=34;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:208;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;
 EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
 EditorUi.prototype.init=function(){var a=this.editor.graph;mxEvent.addListener(a.container,"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));
-var d=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){d.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var d=this.editor.graph;9==a.which&&d.isEnabled()&&!mxEvent.isAltDown(a)&&(d.isEditing()?d.stopEditing(!1):d.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
-EditorUi.prototype.onKeyPress=function(a){var d=this.editor.graph;!this.isImmediateEditingEvent(a)||d.isEditing()||d.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(d.escape(),d.startEditing(),mxClient.IS_FF&&(d=d.cellEditor,d.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(d.textarea),a.collapse(!1),d=window.getSelection(),d.removeAllRanges(),d.addRange(a)))};
+var b=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){b.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9==a.which&&b.isEnabled()&&!mxEvent.isAltDown(a)&&(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
+EditorUi.prototype.onKeyPress=function(a){var b=this.editor.graph;!this.isImmediateEditingEvent(a)||b.isEditing()||b.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(b.escape(),b.startEditing(),mxClient.IS_FF&&(b=b.cellEditor,b.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(b.textarea),a.collapse(!1),b=window.getSelection(),b.removeAllRanges(),b.addRange(a)))};
 EditorUi.prototype.isImmediateEditingEvent=function(a){return!0};
-EditorUi.prototype.getCssClassForMarker=function(a,d,e,b){return"flexArrow"==d?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==b?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==b?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+
-a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==b?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==b?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==b?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==b?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==b?"geSprite geSprite-"+a+"thindiamond":
-"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==b?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==b||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+
+EditorUi.prototype.getCssClassForMarker=function(a,b,e,d){return"flexArrow"==b?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==d?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==d?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+
+a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==d?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==d?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==d?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==d?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond":
+"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==d?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==d||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+
 a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
-EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,d=this.actions.get("paste"),e=this.actions.get("pasteHere");d.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(d.isEnabled())};
-EditorUi.prototype.initClipboard=function(){var a=this,d=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):d.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(d){d.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var b=mxClipboard.paste;mxClipboard.paste=function(d){var e=null;d.cellEditor.isContentEditing()?document.execCommand("paste",
-!1,null):e=b.apply(this,arguments);a.updatePasteActionStates();return e};var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(d,b){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20;
+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(d){d.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 d=mxClipboard.paste;mxClipboard.paste=function(b){var e=null;b.cellEditor.isContentEditing()?document.execCommand("paste",
+!1,null):e=d.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,d){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20;
 EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width,
-this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,d){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var d=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=d=mxUtils.bind(this,function(c,d,b,f){if(null!=a.container){b=null!=b?b:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,l=a.view.scale,n=mxRectangle.fromRectangle(g);
-n.x=n.x/l-k.x;n.y=n.y/l-k.y;n.width/=l;n.height/=l;var k=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(d||1,y/n.width)):l;d=(y-c*n.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*n.height)/this.lightboxVerticalDivider/c;e&&(d=Math.max(d,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c,
-Math.floor(d-n.x),Math.floor(F-n.y)),a.container.scrollTop=k*c/l,a.container.scrollLeft=r*c/l;else if(0!=b||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+b/l),Math.floor(g.y+f/l))}});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*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),h=a.view.translate,n=a.view.scale,m=mxRectangle.fromRectangle(g);
+m.x=m.x/n-h.x;m.y=m.y/n-h.y;m.width/=n;m.height/=n;var h=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(b||1,y/m.width)):n;b=(y-c*m.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*m.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c,
+Math.floor(b-m.x),Math.floor(F-m.y)),a.container.scrollTop=h*c/n,a.container.scrollLeft=r*c/n;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/n),Math.floor(g.y+f/n))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",
 mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){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 h=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||
-0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",h);h();var m=0,h=mxUtils.bind(this,function(a,c,d){m++;var b=document.createElement("span");b.style.paddingLeft="8px";b.style.paddingRight="8px";b.style.cursor="pointer";mxEvent.addListener(b,"click",a);null!=d&&b.setAttribute("title",d);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);b.appendChild(a);this.chromelessToolbar.appendChild(b);
-return b}),p=h(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.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=h(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,
+"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 c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||
+0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",k);k();var l=0,k=mxUtils.bind(this,function(a,c,b){l++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d);
+return d}),p=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.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,
 mxResources.get("nextPage")),c=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))});p.style.paddingLeft="0px";p.style.paddingRight="4px";u.style.paddingLeft="4px";u.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(u.style.display="",p.style.display="",q.style.display="inline-block"):
-(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);h(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");h(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");h(mxUtils.bind(this,
-function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,k=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;k=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
-"none";k=null}),600)}),a||200)}),l=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var n=h(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
-"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var d=n.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=d.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=d.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){n.style.display=1<w.getChildCount(w.root)?
-"":"none"})}this.addChromelessToolbarItems(h);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||h(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v=
-this.lightboxToolbarActions[f];h(v.fn,v.icon,v.tooltip)}!a.lightbox||"1"!=urlParams.close&&this.container==document.body||h(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)||l(30),r())}));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)?r():l(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():l(100);mxEvent.consume(a)}));
-mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||l(30)}));var B=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<B&&Math.abs(this.scrollTop-
-a.container.scrollTop)<B&&Math.abs(this.startX-d.getGraphX())<B&&Math.abs(this.startY-d.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():l(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=
-a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),d=this.getPagePadding(),b=this.getPageSize(),f=Math.ceil(2*d.x+c.width*b.width),g=Math.ceil(2*d.y+c.height*b.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=d.x-c.x*b.width;d=d.y-c.y*b.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==
-d?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,b=a.view.translate.y,a.view.setTranslate(f,d),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((d-b)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=
+(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);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(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,n=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;n=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
+"none";n=null}),600)}),a||200)}),h=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),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 m=k(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
+"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=m.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
+mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){m.style.display=1<w.getChildCount(w.root)?
+"":"none"})}this.addChromelessToolbarItems(k);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||k(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v=
+this.lightboxToolbarActions[f];k(v.fn,v.icon,v.tooltip)}!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),r())}));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)?r():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():h(100);mxEvent.consume(a)}));
+mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var A=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<A&&Math.abs(this.scrollTop-
+a.container.scrollTop)<A&&Math.abs(this.startX-b.getGraphX())<A&&Math.abs(this.startY-b.getGraphY())<A&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=
+a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==
+b?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.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 c=mxUtils.getOffset(a.container),b=0,f=0;null!=z&&(b=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=d&&e.chromelessResize(!1,null,b*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==b&&0==f||(a.container.scrollLeft-=b*(this.cumulativeZoomFactor-
-1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,d){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var b=mxEvent.getSource(c);null!=b;){if(b==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(d);mxEvent.consume(c);break}b=b.parentNode}}))};
+this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),d=0,f=0;null!=z&&(d=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=b&&e.chromelessResize(!1,null,d*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==d&&0==f||(a.container.scrollLeft-=d*(this.cumulativeZoomFactor-
+1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var d=mxEvent.getSource(c);null!=d;){if(d==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(b);mxEvent.consume(c);break}d=d.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 d=urlParams.border,e=60;null!=d&&(e=parseInt(d));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))};
+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))};
 EditorUi.prototype.isSelectionAllowed=function(a){return"SELECT"==mxEvent.getSource(a).nodeName||"INPUT"==mxEvent.getSource(a).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(a))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")};
-EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,d){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=d&&(this.editor.setFilename(d),this.updateDocumentTitle())}catch(b){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+b.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
-this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,d){this.currentMenuElt=d;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};
+EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=b&&(this.editor.setFilename(b),this.updateDocumentTitle())}catch(d){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+d.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
+this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,b){this.currentMenuElt=b;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};
 EditorUi.prototype.updateDocumentTitle=function(){var a=this.editor.getOrCreateFilename();null!=this.editor.appName&&(a+=" - "+this.editor.appName);document.title=a};EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(a){}};
-EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var d=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);d==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};
-EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var d=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==d?a+"?":a+"&",a+=e+"="+urlParams[e],d++;return a};
-EditorUi.prototype.setScrollbars=function(a){var d=this.editor.graph,e=d.container.style.overflow;d.scrollbars=a;this.editor.updateGraphComponents();e!=d.container.style.overflow&&("hidden"==d.container.style.overflow?(a=d.view.translate,d.view.setTranslate(a.x-d.container.scrollLeft/d.view.scale,a.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.minimumGraphSize=null,d.sizeDidChange()):(a=d.view.translate.x,e=d.view.translate.y,d.view.translate.x=0,d.view.translate.y=
-0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(a*d.view.scale),d.container.scrollTop-=Math.round(e*d.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars};
-EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var d=a.getPagePadding();a.container.scrollTop=Math.floor(d.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(d.x,(a.container.scrollWidth-a.container.clientWidth)/2))-
-1;d=a.getGraphBounds();0<d.width&&0<d.height&&(d.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(d.x+d.width-a.container.clientWidth,d.x-10)),d.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(d.y+d.height-a.container.clientHeight,d.y-10)))}else{var d=a.getGraphBounds(),e=Math.max(d.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,d.y-Math.max(20,(a.container.clientHeight-Math.max(d.height,
-a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,d.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(d=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-d.width)/2)-d.x),Math.floor(Math.max(0,(a.container.clientHeight-d.height)/2)-d.y))):(d=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-d.width)/2)-d.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight-
-d.height)/4))-d.y)))};
-EditorUi.prototype.setPageVisible=function(a){var d=this.editor.graph,e=mxUtils.hasScrollbars(d.container),b=0,h=0;e&&(b=d.view.translate.x*d.view.scale-d.container.scrollLeft,h=d.view.translate.y*d.view.scale-d.container.scrollTop);d.pageVisible=a;d.pageBreaksVisible=a;d.preferPageSize=a;d.view.validateBackground();e&&(a=d.getSelectionCells(),d.clearSelection(),d.setSelectionCells(a));d.sizeDidChange();e&&(d.container.scrollLeft=d.view.translate.x*d.view.scale-b,d.container.scrollTop=d.view.translate.y*
-d.view.scale-h);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,d,e,b){this.ui=a;this.previousColor=this.color=d;this.previousImage=this.image=e;this.previousFormat=this.format=b;this.ignoreImage=this.ignoreColor=!1}
-ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var d=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=d}this.ignoreImage||(this.image=this.previousImage,d=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=d);null!=this.previousFormat&&(this.format=this.previousFormat,d=a.pageFormat,this.previousFormat.width!=d.width||this.previousFormat.height!=d.height)&&(this.ui.setPageFormat(this.previousFormat),
-this.previousFormat=d);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);return b};mxCodecRegistry.register(a)})();
+EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var b=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);b==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};
+EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==b?a+"?":a+"&",a+=e+"="+urlParams[e],b++;return a};
+EditorUi.prototype.setScrollbars=function(a){var b=this.editor.graph,e=b.container.style.overflow;b.scrollbars=a;this.editor.updateGraphComponents();e!=b.container.style.overflow&&("hidden"==b.container.style.overflow?(a=b.view.translate,b.view.setTranslate(a.x-b.container.scrollLeft/b.view.scale,a.y-b.container.scrollTop/b.view.scale),b.container.scrollLeft=0,b.container.scrollTop=0,b.minimumGraphSize=null,b.sizeDidChange()):(a=b.view.translate.x,e=b.view.translate.y,b.view.translate.x=0,b.view.translate.y=
+0,b.sizeDidChange(),b.container.scrollLeft-=Math.round(a*b.view.scale),b.container.scrollTop-=Math.round(e*b.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars};
+EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var b=a.getPagePadding();a.container.scrollTop=Math.floor(b.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(b.x,(a.container.scrollWidth-a.container.clientWidth)/2))-
+1;b=a.getGraphBounds();0<b.width&&0<b.height&&(b.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(b.x+b.width-a.container.clientWidth,b.x-10)),b.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(b.y+b.height-a.container.clientHeight,b.y-10)))}else{var b=a.getGraphBounds(),e=Math.max(b.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,b.y-Math.max(20,(a.container.clientHeight-Math.max(b.height,
+a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,b.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(b=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-b.width)/2)-b.x),Math.floor(Math.max(0,(a.container.clientHeight-b.height)/2)-b.y))):(b=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-b.width)/2)-b.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight-
+b.height)/4))-b.y)))};
+EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),d=0,k=0;e&&(d=b.view.translate.x*b.view.scale-b.container.scrollLeft,k=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-d,b.container.scrollTop=b.view.translate.y*
+b.view.scale-k);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,b,e,d){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.ignoreImage=this.ignoreColor=!1}
+ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat),
+this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})();
 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"),d=this.actions.get("redo"),e=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());d.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,b);e.addListener(mxEvent.UNDO,b);e.addListener(mxEvent.REDO,b);e.addListener(mxEvent.CLEAR,b);var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);b()};var m=this.editor.graph.cellEditor.stopEditing;
-this.editor.graph.cellEditor.stopEditing=function(a,d){m.apply(this,arguments);b()};b()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,d=!a.isSelectionEmpty(),e=!1,b=!1,h=a.getSelectionCells();if(null!=h)for(var m=0;m<h.length;m++){var p=h[m];a.getModel().isEdge(p)&&(b=!0);a.getModel().isVertex(p)&&(e=!0);if(b&&e)break}h="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(m=
-0;m<h.length;m++)this.actions.get(h[m]).setEnabled(d);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(b);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);b=e&&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(d||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()));d=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(d);this.actions.get("collapse").setEnabled(d);
-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);d=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(d);this.menus.get("insert").setEnabled(d);this.menus.get("direction").setEnabled(d&&e);this.menus.get("align").setEnabled(d&&
-e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(d&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(d);this.actions.get("selectEdges").setEnabled(d);this.actions.get("selectAll").setEnabled(d);this.actions.get("selectNone").setEnabled(d);this.updatePasteActionStates()};
-EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var d=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,b=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,b=d?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var h=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&
-(h=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var m=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u=
-this.footerHeight+h,q=Math.max(0,Math.min(b-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=m+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=m+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"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+h+"px";this.hsplit.style.left=m+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);d?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
-d=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=d-q+"px",this.formatContainer.style.height=d+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-m-this.splitSize-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=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+h+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=h+"px"),this.diagramContainer.style.right=u+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+h+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+h+"px",this.formatContainer.style.bottom=
-this.footerHeight+h+"px",this.diagramContainer.style.bottom=this.footerHeight+h+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
+EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);d()};var l=this.editor.graph.cellEditor.stopEditing;
+this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);d()};d()};
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,k=a.getSelectionCells();if(null!=k)for(var l=0;l<k.length;l++){var p=k[l];a.getModel().isEdge(p)&&(d=!0);a.getModel().isVertex(p)&&(e=!0);if(d&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize 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("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);d=e&&1==
+a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&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,d=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,d=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 l=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u=
+this.footerHeight+k,q=Math.max(0,Math.min(d-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"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,d-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-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,d-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=u+"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"));
 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=
 "0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-2;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
@@ -2155,251 +2156,252 @@ EditorUi.prototype.createUi=function(){this.menubar=this.editor.chromeless?null:
 this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContainer);null!=this.sidebar&&this.container.appendChild(this.sidebarContainer);this.format=this.editor.chromeless||!this.formatEnabled?null:this.createFormat(this.formatContainer);null!=this.format&&this.container.appendChild(this.formatContainer);var a=this.editor.chromeless?null:this.createFooter();null!=a&&(this.footerContainer.appendChild(a),this.container.appendChild(this.footerContainer));null!=this.sidebar&&this.sidebarFooterContainer&&
 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 d=document.createElement("div");d.className=a;return d};
-EditorUi.prototype.addSplitHandler=function(a,d,e,b){function h(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,q+(d?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function m(a){h(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(d?a.style.left:a.style.bottom);d||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var d=null!=c?c-e:0;c=f();b(d);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,h,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,h,m)})};
-EditorUi.prototype.showDialog=function(a,d,e,b,h,m,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,d,e,b,h,m,p,q);this.dialogs.push(this.dialog)};
+EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
+EditorUi.prototype.addSplitHandler=function(a,b,e,d){function k(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function l(a){k(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var b=null!=c?c-e:0;c=f();d(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,d,k,l,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,k,l,p,q);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(),mxUtils.clearSelection(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
-EditorUi.prototype.pickColor=function(a,d){var e=this.editor.graph,b=e.cellEditor.saveSelection(),h=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),m=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(b);d(a)},function(){e.cellEditor.restoreSelection(b)});this.showDialog(m.container,230,h,!0,!1);m.init()};
+EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),k=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(l.container,230,k,!0,!1);l.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})};
-EditorUi.prototype.extractGraphModelFromHtml=function(a){var d=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var b=a.lastIndexOf("&lt;/mxGraphModel&gt;");b>e&&(d=a.substring(e,b+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(h){}return d};
-EditorUi.prototype.extractGraphModelFromEvent=function(a){var d=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&&
-(d=e);return d};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())};
-EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var d=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,d);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(d.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(d))).simulate(document,
-"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(d);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,d,e){var b=this.editor.graph;if(b.isEnabled()){b.getModel().beginUpdate();try{a()}catch(h){throw h;}finally{this.allowAnimation&&d&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(b),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){b.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(b.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(a,d,e,b){b=this.editor.graph.cellEditor;var h=b.saveSelection(),m=mxUtils.prompt(a,d);b.restoreSelection(h);if(null!=m&&0<m.length){var p=new Image;p.onload=function(){e(m,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,d,e){a=new LinkDialog(this,a,d,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(k){}return b};
+EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&&
+(b=e);return b};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())};
+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 d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(k){throw k;}finally{this.allowAnimation&&b&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}};
+EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var k=d.saveSelection(),l=mxUtils.prompt(a,b);d.restoreSelection(k);if(null!=l&&0<l.length){var p=new Image;p.onload=function(){e(l,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.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.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(this,a),this.showDialog(a.container,340,340,!0,!1,null,!1),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=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=d&&0<d.length){var e=new Image;e.onload=function(){a(new mxImage(d,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=d}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,d,e){mxUtils.confirm(a)?null!=d&&d():null!=e&&e()};
-EditorUi.prototype.createOutline=function(a){var d=new mxOutline(this.editor.graph);d.border=20;mxEvent.addListener(window,"resize",function(){d.update()});this.addListener("pageFormatChanged",function(){d.update()});return d};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"};
-EditorUi.prototype.createKeyHandler=function(a){function d(a,c,d){p.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var f=b.getSelectionCells(),g=0;g<f.length;g++)if(b.getModel().isVertex(f[g])&&b.isCellResizable(f[g])){var e=b.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),b.getModel().setGeometry(f[g],e))}}finally{b.getModel().endUpdate()}}else f=
-b.getSelectionCell(),g=b.model.getParent(f),e=null,1==b.getSelectionCount()&&b.model.isVertex(f)&&null!=b.layoutManager&&!b.isCellLocked(f)&&(e=b.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?b.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||b.model.add(g,f,Math.min(b.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),b.moveCells(b.getMovableCells(b.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<
-p.length){b.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var e=this,b=this.editor.graph,h=new mxKeyHandler(b),m=h.isEventIgnored;h.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)};h.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};h.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=h.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&
-mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=u[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(),u[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!=e.hoverIcons&&e.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return c.apply(this,arguments)};h.bindAction=mxUtils.bind(this,function(a,c,d,b){var f=this.actions.get(d);
-null!=f&&(d=function(){f.isEnabled()&&f.funct()},c?b?h.bindControlShiftKey(a,d):h.bindControlKey(a,d):b?h.bindShiftKey(a,d):h.bindKey(a,d))});var f=h.escape;h.escape=function(a){f.apply(this,arguments)};h.enter=function(){};h.bindControlShiftKey(36,function(){b.exitGroup()});h.bindControlShiftKey(35,function(){b.enterGroup()});h.bindKey(36,function(){b.home()});h.bindKey(35,function(){b.refresh()});h.bindAction(107,!0,"zoomIn");h.bindAction(109,!0,"zoomOut");h.bindAction(80,!0,"print");h.bindAction(79,
-!0,"outline",!0);h.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)h.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),h.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),h.bindControlKey(13,function(){b.isEnabled()&&b.setSelectionCells(b.duplicateCells(b.getSelectionCells(),!1))}),h.bindAction(8,!1,"delete"),h.bindAction(8,!0,"deleteAll"),h.bindAction(46,!1,"delete"),h.bindAction(46,!0,"deleteAll"),h.bindAction(72,!0,"resetView"),h.bindAction(72,
-!0,"fitWindow",!0),h.bindAction(74,!0,"fitPage"),h.bindAction(74,!0,"fitTwoPages",!0),h.bindAction(48,!0,"customZoom"),h.bindAction(82,!0,"turn"),h.bindAction(82,!0,"clearDefaultStyle",!0),h.bindAction(83,!0,"save"),h.bindAction(83,!0,"saveAs",!0),h.bindAction(65,!0,"selectAll"),h.bindAction(65,!0,"selectNone",!0),h.bindAction(73,!0,"selectVertices",!0),h.bindAction(69,!0,"selectEdges",!0),h.bindAction(69,!0,"editStyle"),h.bindAction(66,!0,"bold"),h.bindAction(66,!0,"toBack",!0),h.bindAction(70,!0,
-"toFront",!0),h.bindAction(68,!0,"duplicate"),h.bindAction(68,!0,"setAsDefaultStyle",!0),h.bindAction(90,!0,"undo"),h.bindAction(89,!0,"autosize",!0),h.bindAction(88,!0,"cut"),h.bindAction(67,!0,"copy"),h.bindAction(86,!0,"paste"),h.bindAction(71,!0,"group"),h.bindAction(77,!0,"editData"),h.bindAction(71,!0,"grid",!0),h.bindAction(73,!0,"italic"),h.bindAction(76,!0,"lockUnlock"),h.bindAction(76,!0,"layers",!0),h.bindAction(80,!0,"formatPanel",!0),h.bindAction(85,!0,"underline"),h.bindAction(85,!0,
-"ungroup",!0),h.bindAction(190,!0,"superscript"),h.bindAction(188,!0,"subscript"),h.bindKey(13,function(){b.isEnabled()&&b.startEditingAtCell()}),h.bindKey(113,function(){b.isEnabled()&&b.startEditingAtCell()});mxClient.IS_WIN?h.bindAction(89,!0,"redo"):h.bindAction(90,!0,"redo",!0);return h};
+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.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"};
+EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){p.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else f=
+d.getSelectionCell(),g=d.model.getParent(f),e=null,1==d.getSelectionCount()&&d.model.isVertex(f)&&null!=d.layoutManager&&!d.isCellLocked(f)&&(e=d.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?d.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||d.model.add(g,f,Math.min(d.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),d.moveCells(d.getMovableCells(d.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<
+p.length){d.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{d.getModel().endUpdate()}d.scrollCellToVisible(d.getSelectionCell())}},200)}var e=this,d=this.editor.graph,k=new mxKeyHandler(d),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()&&(null==e.dialogs||0==e.dialogs.length)};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=k.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&
+mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:function(){d.selectChildCell()};if(null!=u[a.keyCode]&&!d.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var c=d.connectVertex(d.getSelectionCell(),u[a.keyCode],d.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&
+d.model.isEdge(c[0])?d.setSelectionCell(d.model.getTerminal(c[0],!1)):d.setSelectionCell(c[c.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return c.apply(this,arguments)};k.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b);
+null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?k.bindControlShiftKey(a,b):k.bindControlKey(a,b):d?k.bindShiftKey(a,b):k.bindKey(a,b))});var f=k.escape;k.escape=function(a){f.apply(this,arguments)};k.enter=function(){};k.bindControlShiftKey(36,function(){d.exitGroup()});k.bindControlShiftKey(35,function(){d.enterGroup()});k.bindKey(36,function(){d.home()});k.bindKey(35,function(){d.refresh()});k.bindAction(107,!0,"zoomIn");k.bindAction(109,!0,"zoomOut");k.bindAction(80,!0,"print");k.bindAction(79,
+!0,"outline",!0);k.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)k.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),k.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),k.bindControlKey(13,function(){d.isEnabled()&&d.setSelectionCells(d.duplicateCells(d.getSelectionCells(),!1))}),k.bindAction(8,!1,"delete"),k.bindAction(8,!0,"deleteAll"),k.bindAction(46,!1,"delete"),k.bindAction(46,!0,"deleteAll"),k.bindAction(72,!0,"resetView"),k.bindAction(72,
+!0,"fitWindow",!0),k.bindAction(74,!0,"fitPage"),k.bindAction(74,!0,"fitTwoPages",!0),k.bindAction(48,!0,"customZoom"),k.bindAction(82,!0,"turn"),k.bindAction(82,!0,"clearDefaultStyle",!0),k.bindAction(83,!0,"save"),k.bindAction(83,!0,"saveAs",!0),k.bindAction(65,!0,"selectAll"),k.bindAction(65,!0,"selectNone",!0),k.bindAction(73,!0,"selectVertices",!0),k.bindAction(69,!0,"selectEdges",!0),k.bindAction(69,!0,"editStyle"),k.bindAction(66,!0,"bold"),k.bindAction(66,!0,"toBack",!0),k.bindAction(70,!0,
+"toFront",!0),k.bindAction(68,!0,"duplicate"),k.bindAction(68,!0,"setAsDefaultStyle",!0),k.bindAction(90,!0,"undo"),k.bindAction(89,!0,"autosize",!0),k.bindAction(88,!0,"cut"),k.bindAction(67,!0,"copy"),k.bindAction(86,!0,"paste"),k.bindAction(71,!0,"group"),k.bindAction(77,!0,"editData"),k.bindAction(71,!0,"grid",!0),k.bindAction(73,!0,"italic"),k.bindAction(76,!0,"lockUnlock"),k.bindAction(76,!0,"layers",!0),k.bindAction(80,!0,"formatPanel",!0),k.bindAction(85,!0,"underline"),k.bindAction(85,!0,
+"ungroup",!0),k.bindAction(190,!0,"superscript"),k.bindAction(188,!0,"subscript"),k.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),k.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?k.bindAction(89,!0,"redo"):k.bindAction(90,!0,"redo",!0);return k};
 EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&&
 (mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,
-"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var d=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<d.length;a++)null!=d[a]&&null!=d[a].parentNode&&d[a].parentNode.removeChild(d[a])};"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(d){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
+"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;
+(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
 mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
-Graph=function(a,d,e,b,h){mxGraph.call(this,a,d,e,b);this.themes=h||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;d=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<d&&(d=a.indexOf("/",d+2),0<d&&(this.domainUrl=a.substring(0,d)),d=a.lastIndexOf("/"),0<d&&(this.domainPathUrl=a.substring(0,d+1)));this.isHtmlLabel=function(a){var c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);
-return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var m=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")&&this.isEnabled()){var b=d.getProperty("event");if(!mxEvent.isControlDown(b.getEvent())&&!mxEvent.isShiftDown(b.getEvent())){var f=b.getState();null!=f&&this.model.isEdge(f.cell)&&(m=new mxPoint(b.getGraphX(),b.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=b,null!=
-f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,b.getGraphX(),b.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(b))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,d){var b=this.selectionCellsHandler.handlers.map,f;for(f in b)if(null!=b[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&
-!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isAltDown(d.getEvent()))if(f=this.tolerance,null!=m&&null!=q&&null!=p){if(b=q,Math.abs(m.x-d.getGraphX())>f||Math.abs(m.y-d.getGraphY())>f){this.isCellSelected(b.cell)||this.setSelectionCell(b.cell);var g=this.selectionCellsHandler.getHandler(b.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),k=this.view.getEdgeStyle(b);f=k==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
-null==b.visibleSourceState&&null==b.visibleTargetState||(this.graphHandler.reset(),d.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=b.visibleSourceState||e==g.bends.length-1||null!=b.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=b.absolutePoints,null!=f&&(null==k&&null==e||k==mxEdgeStyle.OrthConnector)&&(e=u,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!=k&&(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(b,m.x,m.y),e=null==k?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(d.getGraphX(),d.getGraphX(),e),u=m=p=q=null,c=!1,d.consume(),this.graphHandler.reset()}}}else if(b=d.getState(),null!=b&&this.model.isEdge(b.cell)){g=null;f=b.absolutePoints;if(null!=f)if(e=new mxRectangle(d.getGraphX(),
-d.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=b.text&&null!=b.text.boundingBox&&mxUtils.contains(b.text.boundingBox,d.getGraphX(),d.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!=b.visibleSourceState||null!=b.visibleTargetState)k=this.view.getEdgeStyle(b),g="crosshair",k!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(b)&&(k=mxUtils.findNearestSegment(b,d.getGraphX(),d.getGraphY()),
-k<f.length-1&&0<=k&&(g=0==Math.round(f[k].x-f[k+1].x)?"col-resize":"row-resize"));null!=g&&b.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=m=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
-this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],d=this.graph.pageFormat,b=this.graph.pageScale,g=d.width*b,d=d.height*b,b=this.graph.view.translate,e=this.graph.view.scale,k=this.graph.getPageLayout(),l=0;l<k.width;l++)c.push(new mxRectangle(((k.x+l)*g+b.x)*e,(k.y*d+b.y)*e,g*e,d*e));for(l=0;l<k.height;l++)c.push(new mxRectangle((k.x*g+b.x)*e,((k.y+l)*d+b.y)*e,g*e,d*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
-function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),d=[],b=0;b<c.length;b++){var f=this.graph.view.getState(c[b]),f=null!=f?f.style:this.graph.getCellStyle(c[b]);
-"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[b]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&d.push(f)):d.push(c[b])}return d};this.connectionHandler.createTargetVertex=function(a,c){var d=this.graph.view.getState(c),d=null!=d?d.style:this.graph.getCellStyle(c);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(c),this.graph.model.isVertex(d)&&(c=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this);
-this.getRubberband=function(){return g};var k=(new Date).getTime(),r=0,l=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;l.apply(this,arguments);a!=this.currentState?(k=(new Date).getTime(),r=0):r=(new Date).getTime()-k};var n=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
-"outlineConnect","1"))&&n.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.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 B=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
-(B=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=B)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this,
+Graph=function(a,b,e,d,k){mxGraph.call(this,a,b,e,d);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 c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);
+return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var l=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event");if(!mxEvent.isControlDown(d.getEvent())&&!mxEvent.isShiftDown(d.getEvent())){var f=d.getState();null!=f&&this.model.isEdge(f.cell)&&(l=new mxPoint(d.getGraphX(),d.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=d,null!=
+f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,d.getGraphX(),d.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(d))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,f;for(f in d)if(null!=d[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!=l&&null!=q&&null!=p){if(d=q,Math.abs(l.x-b.getGraphX())>f||Math.abs(l.y-b.getGraphY())>f){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var g=this.selectionCellsHandler.getHandler(d.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),h=this.view.getEdgeStyle(d);f=h==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
+null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==g.bends.length-1||null!=d.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=d.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=u,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(d,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),u=l=p=q=null,c=!1,b.consume(),this.graphHandler.reset()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){g=null;f=d.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(),
+b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.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!=d.visibleSourceState||null!=d.visibleTargetState)h=this.view.getEdgeStyle(d),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(h=mxUtils.findNearestSegment(d,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&&d.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=l=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
+this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
+function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,g=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,h=this.graph.getPageLayout(),n=0;n<h.width;n++)c.push(new mxRectangle(((h.x+n)*g+d.x)*e,(h.y*b+d.y)*e,g*e,b*e));for(n=0;n<h.height;n++)c.push(new mxRectangle((h.x*g+d.x)*e,((h.y+n)*b+d.y)*e,g*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
+function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),b=[],d=0;d<c.length;d++){var f=this.graph.view.getState(c[d]),f=null!=f?f.style:this.graph.getCellStyle(c[d]);
+"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[d]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&b.push(f)):b.push(c[d])}return b};this.connectionHandler.createTargetVertex=function(a,c){var b=this.graph.view.getState(c),b=null!=b?b.style:this.graph.getCellStyle(c);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(c),this.graph.model.isVertex(b)&&(c=b));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this);
+this.getRubberband=function(){return g};var n=(new Date).getTime(),r=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(n=(new Date).getTime(),r=0):r=(new Date).getTime()-n};var m=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&m.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.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 A=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
+(A=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=A)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this,
 arguments);c=c?a.sourceState.cell:a.getCell();null!=c&&(c=this.getLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)))};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var t=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 t.apply(this,arguments)};this.selectRegion=function(a,c){var d=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(d,c);return d};this.getAllCells=function(a,c,d,b,f,g){g=null!=g?g:[];if(0<d||0<b){var e=this.getModel(),k=a+d,l=c+b;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var n=e.getChildCount(f),F=0;F<n;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!=
-t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=l&&t.y>=c&&t.x+t.width<=k&&g.push(r);this.getAllCells(a,c,d,b,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,d){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var d=c.getProperty("event").getState();H=null==d||this.isSelectionEmpty()||this.isCellSelected(d.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var d=
-c.getProperty("event"),b=c.getProperty("cell");null==b?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),g.start(d.x,d.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(b)&&this.removeSelectionCell(b);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,
+this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return t.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,c);return b};this.getAllCells=function(a,c,b,d,f,g){g=null!=g?g:[];if(0<b||0<d){var e=this.getModel(),h=a+b,n=c+d;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var m=e.getChildCount(f),F=0;F<m;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!=
+t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=n&&t.y>=c&&t.x+t.width<=h&&g.push(r);this.getAllCells(a,c,b,d,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();H=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=
+c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&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 G=this.updateMouseEvent;this.updateMouseEvent=function(a){a=G.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};
 Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
-Graph.createSvgImage=function(a,d,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="'+d+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,d)};mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;
+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.linkRelation="nofollow noopener noreferrer";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=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,h=!0,m=null,p=mxUtils.bind(this,function(a){h=!0;m=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){h=h&&null!=m&&Math.abs(m.x-mxEvent.getClientX(a))<d&&Math.abs(m.y-mxEvent.getClientY(a))<d}),u=mxUtils.bind(this,function(c){if(h)for(var d=mxEvent.getSource(c);null!=
-d&&d!=e.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
-(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,d,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,
-d,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var b=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,d,b,p,q,u);if(null!=g)return g;if(this.isCellVisible(b)&&(q&&this.model.isEdge(b)||p&&this.model.isVertex(b))&&(g=this.view.getState(b),null!=g&&(null==u||!u(g,a,d))&&this.intersects(g,a,d)))return b}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a=
-this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+d.x)*e,(a.y+d.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=
-function(d){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();
-if(null!=a)if(a=a.parentNode,this.useCssTransforms){var d=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(d!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;
-mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,m=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=e,this.translate=m)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,d,m){var b=this.useCssTransforms,h=this.view.scale,u=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=
-!1);e.apply(this,arguments);b&&(this.view.scale=h,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,d,e){d=d.getAttribute("href");if(null!=d&&!this.isCustomLink(d)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(d)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(d),a);mxEvent.consume(e)}};
-Graph.prototype.openLink=function(a,d,e){var b=window;"_self"==d&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==d&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(b=window.open(a,d),null==b||e||(b.opener=null));return b};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};
+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,p=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}),u=mxUtils.bind(this,function(c){if(k)for(var b=mxEvent.getSource(c);null!=
+b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,c);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
+(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,b,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,
+b,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var d=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,b,d,p,q,u);if(null!=g)return g;if(this.isCellVisible(d)&&(q&&this.model.isEdge(d)||p&&this.model.isVertex(d))&&(g=this.view.getState(d),null!=g&&(null==u||!u(g,a,b))&&this.intersects(g,a,b)))return d}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a=
+this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*e,(a.y+b.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=
+function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();
+if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(b!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var b=mxGraphView.prototype.validateBackgroundPage;
+mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,l=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);b.apply(this,arguments);a&&(this.scale=e,this.translate=l)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,l){var d=this.useCssTransforms,k=this.view.scale,u=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=
+!1);e.apply(this,arguments);d&&(this.view.scale=k,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
+Graph.prototype.openLink=function(a,b,e){var d=window;"_self"==b&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(d=window.open(a,b),null==d||e||(d.opener=null));return d};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};
 Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
 Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)};
-Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var d=this.graph.view.getState(a);a=null!=d?d.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(d=new mxStackLayout(this.graph,!0),d.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),d.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.resizeLast="1"==mxUtils.getValue(a,
-"resizeLast","0"),d.spacing=a.stackSpacing||d.spacing,d.border=a.stackBorder||d.border,d.marginLeft=a.marginLeft||0,d.marginRight=a.marginRight||0,d.marginTop=a.marginTop||0,d.marginBottom=a.marginBottom||0,d.fill=!0,d):"treeLayout"==a.childLayout?(d=new mxCompactTreeLayout(this.graph),d.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.groupPadding=mxUtils.getValue(a,"parentPadding",20),d.levelDistance=mxUtils.getValue(a,"treeLevelDistance",
-30),d.maintainParentLocation=!0,d.edgeRouting=!1,d.resetEdges=!1,d):"flowLayout"==a.childLayout?(d=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.parentBorder=mxUtils.getValue(a,"parentPadding",20),d.maintainParentLocation=!0,d.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),d.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing",
-mxHierarchicalLayout.prototype.interRankCellSpacing),d.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),d.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),d):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(),d=this.getGraphBounds();if(0==d.width||0==d.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(d.x/this.view.scale-this.view.translate.x),b=Math.ceil(d.y/this.view.scale-this.view.translate.y),h=Math.floor(e/a.width),m=Math.floor(b/a.height);return new mxRectangle(h,m,Math.ceil((e+Math.floor(d.width/this.view.scale))/a.width)-h,Math.ceil((b+Math.floor(d.height/this.view.scale))/a.height)-m)};
-Graph.prototype.sanitizeHtml=function(a,d){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,d;for(d in this.model.cells){var e=this.model.cells[d];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.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a);a=null!=b?b.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(b=new mxStackLayout(this.graph,!0),b.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),b.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.resizeLast="1"==mxUtils.getValue(a,
+"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),d=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),l=Math.floor(d/a.height);return new mxRectangle(k,l,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((d+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.isMetaDown(a)&&mxClient.IS_MAC||mxEvent.isControlDown(a)&&!mxClient.IS_MAC};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,d,e){return!this.model.isEdge(d[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var d=mxGraph.prototype.getLabel.apply(this,arguments);null!=d&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(d=this.replacePlaceholders(a,d));return d};
-Graph.prototype.isLabelMovable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(d,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};
-Graph.prototype.getGlobalVariable=function(a){var d=null;"date"==a?d=(new Date).toLocaleDateString():"time"==a?d=(new Date).toLocaleTimeString():"timestamp"==a?d=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),d=this.formatDate(new Date,a));return d};
-Graph.prototype.formatDate=function(a,d,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 b=this.dateFormatCache,h=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(d=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");d=String(b.masks[d]||d||b.masks["default"]);"UTC:"==d.slice(0,4)&&(d=d.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),k=a[q+"Hours"](),r=a[q+"Minutes"](),l=a[q+"Seconds"](),q=a[q+"Milliseconds"](),n=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:b.i18n.dayNames[c],dddd:b.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:b.i18n.monthNames[f],mmmm:b.i18n.monthNames[f+
-12],yy:String(g).slice(2),yyyy:g,h:k%12||12,hh:p(k%12||12),H:k,HH:p(k),M:r,MM:p(r),s:l,ss:p(l),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(h)||[""]).pop().replace(m,""),o:(0<n?"-":"+")+p(100*Math.floor(Math.abs(n)/60)+Math.abs(n)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return d.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1,
+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 d=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,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),n=a[q+"Hours"](),r=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),m=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:d.i18n.dayNames[c],dddd:d.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:d.i18n.monthNames[f],mmmm:d.i18n.monthNames[f+
+12],yy:String(g).slice(2),yyyy:g,h:n%12||12,hh:p(n%12||12),H:n,HH:p(n),M:r,MM:p(r),s:h,ss:p(h),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(l,""),o:(0<m?"-":"+")+p(100*Math.floor(Math.abs(m)/60)+Math.abs(m)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return b.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 d=this.getModel(),e=d.getChildCount(d.root),b=0;b<e;b++)mxUtils.bind(this,function(b){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var h=document.createElement("input");h.style.display="inline-block";h.setAttribute("type","checkbox");d.isVisible(b)&&(h.setAttribute("checked","checked"),
-h.defaultChecked=!0);e.appendChild(h);var q=this.convertValueToString(b)||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(h,"click",function(){null!=h.getAttribute("checked")?h.removeAttribute("checked"):h.setAttribute("checked","checked");d.setVisible(b,h.checked)})})(d.getChildAt(d.root,b));return a};
-Graph.prototype.replacePlaceholders=function(a,d){var e=[];if(null!=d){for(var b=0;match=this.placeholderPattern.exec(d);){var h=match[0];if(2<h.length&&"%label%"!=h&&"%tooltip%"!=h){var m=null;if(match.index>b&&"%"==d.charAt(match.index-1))m=h.substring(1);else{var p=h.substring(1,h.length-1);if(0>p.indexOf("{"))for(var q=a;null==m&&null!=q;)null!=q.value&&"object"==typeof q.value&&(m=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==m&&(m=this.getGlobalVariable(p))}e.push(d.substring(b,
-match.index)+(null!=m?m:h));b=match.index+h.length}}e.push(d.substring(b))}return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,d,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(d)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
-Graph.prototype.connectVertex=function(a,d,e,b,h,m){m=m?m:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);d==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):d==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=d==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
-var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(b)&&!h?null:this.getCellAt(c+p.x*q,u+p.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(h=!mxEvent.isShiftDown(b)||h)d==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:d==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=d==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.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&&h){for(var c=a,f=this.getCellGeometry(a);null!=
-f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),k=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(k,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var l=mxEvent.isControlDown(b)&&h||null==m&&null!=f&&f.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=l.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==l.parent&&(n=b.parent.getIndex(b),this.model.add(b.parent,l,n))}null==m&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&d==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
-q,n));null!=l&&e.push(l);null==m&&null!=q&&e.push(q);null==q&&null!=l&&l.geometry.setTerminalPoint(p,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}return e};
-Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),d=[],e,b;for(b in this.model.cells)if(e=this.model.cells[b],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&&d.push(e);return d.join(" ")};
-Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var d=a.getAttribute("placeholder"),e=a,b=null;null==b&&null!=e;)null!=e.value&&"object"==typeof e.value&&(b=e.hasAttribute(d)?null!=e.getAttribute(d)?e.getAttribute(d):"":null),e=this.model.getParent(e);return b||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
+Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),e=b.getChildCount(b.root),d=0;d<e;d++)mxUtils.bind(this,function(d){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(d)&&(k.setAttribute("checked","checked"),
+k.defaultChecked=!0);e.appendChild(k);var q=this.convertValueToString(d)||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(d,k.checked)})})(b.getChildAt(b.root,d));return a};
+Graph.prototype.replacePlaceholders=function(a,b){var e=[];if(null!=b){for(var d=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var l=null;if(match.index>d&&"%"==b.charAt(match.index-1))l=k.substring(1);else{var p=k.substring(1,k.length-1);if(0>p.indexOf("{"))for(var q=a;null==l&&null!=q;)null!=q.value&&"object"==typeof q.value&&(l=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==l&&(l=this.getGlobalVariable(p))}e.push(b.substring(d,
+match.index)+(null!=l?l:k));d=match.index+k.length}}e.push(b.substring(d))}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,d,k,l){l=l?l:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):b==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
+var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);l=l||mxEvent.isControlDown(d)&&!k?null:this.getCellAt(c+p.x*q,u+p.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(d)||k)b==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2;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 c=a,f=this.getCellGeometry(a);null!=
+f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),n=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(n,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(d)&&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 m=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=h.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==h.parent&&(m=d.parent.getIndex(d),this.model.add(d.parent,h,m))}null==l&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(m=a.parent.getIndex(a),this.model.add(a.parent,
+q,m));null!=h&&e.push(h);null==l&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(p,!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,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.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,d=null;null==d&&null!=e;)null!=e.value&&"object"==typeof e.value&&(d=e.hasAttribute(b)?null!=e.getAttribute(b)?e.getAttribute(b):"":null),e=this.model.getParent(e);return d||""}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 d=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&&(d[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return d};
-Graph.prototype.updateAlternateBounds=function(a,d,e){if(null!=a&&null!=d&&null!=this.layoutManager&&null!=d.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?d.alternateBounds.height=0:d.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,d,e,b,h){d=null!=d?d:!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 p=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[m]),g=this.layoutManager.getLayout(f);
-null==g?null!=h&&this.isMoveCellsEvent(h)&&this.moveSiblings(p,f,u,c):null!=h&&mxEvent.isAltDown(h)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(a,d,e,b){this.model.beginUpdate();try{var h=this.getCellsBeyond(a.x,a.y,d,!0,!0);for(d=0;d<h.length;d++)if(h[d]!=a.cell){var m=this.view.getState(h[d]),p=this.getCellGeometry(h[d]);null!=m&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(h[d],p))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,d,e,b){if(null!=this.layoutManager&&null!=d&&d.constructor==mxStackLayout&&!d.resizeLast){this.model.beginUpdate();try{for(var h=d.horizontal;null!=a&&null!=d&&d.constructor==mxStackLayout&&d.horizontal==h&&!d.resizeLast;){var m=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=m&&(m=m.clone(),d.horizontal?m.width+=e+Math.min(0,p.width/this.view.scale-m.width):m.height+=b+Math.min(0,p.height/this.view.scale-m.height),this.model.setGeometry(a,
-m));a=this.model.getParent(a);d=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=d.container:"1"==d.container};Graph.prototype.isCellConnectable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return null!=d.connectable?"0"!=d.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,d,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,d,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
-Graph.prototype.isCellFoldable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=d.collapsible||!this.isContainer(a)&&"1"==d.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
-Graph.prototype.zoom=function(a,d){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)};
-Graph.prototype.getTooltipForCell=function(a){var d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),d=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&e.push("link");for(var h=0;h<a.length;h++)0>mxUtils.indexOf(e,a[h].nodeName)&&0<a[h].nodeValue.length&&b.push({name:a[h].nodeName,value:a[h].nodeValue});b.sort(function(a,d){return a.name<d.name?
--1:a.name>d.name?1:0});for(h=0;h<b.length;h++)"link"==b[h].name&&this.isCustomLink(b[h].value)||(d+=("link"!=b[h].name?"<b>"+b[h].name+":</b> ":"")+mxUtils.htmlEntities(b[h].value)+"\n");0<d.length&&(d=d.substring(0,d.length-1),mxClient.IS_SVG&&(d='<div style="max-width:360px;">'+d+"</div>"))}}return d};Graph.prototype.stringToBytes=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=a.charCodeAt(e);return d};
-Graph.prototype.bytesToString=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);return d.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};
-Graph.prototype.zapGremlins=function(a){for(var d=[],e=0;e<a.length;e++){var b=a.charCodeAt(e);(32<=b||9==b||10==b||13==b)&&d.push(a.charAt(e))}return d.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";
-HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
-HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
-HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
-HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":
-IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
+Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
+Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
+Graph.prototype.foldCells=function(a,b,e,d,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 p=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[l]),g=this.layoutManager.getLayout(f);
+null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(p,f,u,c):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(a,b,e,d){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]),p=this.getCellGeometry(k[b]);null!=l&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(k[b],p))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var l=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,p.width/this.view.scale-l.width):l.height+=d+Math.min(0,p.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)};
+Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&e.push("link");for(var k=0;k<a.length;k++)0>mxUtils.indexOf(e,a[k].nodeName)&&0<a[k].nodeValue.length&&d.push({name:a[k].nodeName,value:a[k].nodeValue});d.sort(function(a,b){return a.name<b.name?
+-1:a.name>b.name?1:0});for(k=0;k<d.length;k++)"link"==d[k].name&&this.isCustomLink(d[k].value)||(b+=("link"!=d[k].name?"<b>"+d[k].name+":</b> ":"")+mxUtils.htmlEntities(d[k].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b};
+Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};
+Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],e=0;e<a.length;e++){var d=a.charCodeAt(e);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(e))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;
+HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";
+HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);
+HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);
+HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
+HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+
+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
 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(d){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||
-!mxEvent.isTouchEvent(d.getEvent())||this.graph.model.isVertex(d.getCell())||this.reset()});var d=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,b){d=!1;var e=b.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(b.getState());null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,b){var e=b.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
-this.update(this.getState(b.getState()),b.getGraphX(),b.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(d=!0)}),mouseUp:mxUtils.bind(this,function(a,b){var e=b.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!d&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),b):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(b.getGraphX(),b.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,b.getGraphX(),b.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();d=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,d){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)};
-HoverIcons.prototype.createArrow=function(a,d){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline":
-"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=d&&e.setAttribute("title",d);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y),
+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,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(d.getState());null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
+this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!b&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),d):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(d.getGraphX(),d.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,d.getGraphX(),d.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)};
+HoverIcons.prototype.createArrow=function(a,b){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline":
+"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=b&&e.setAttribute("title",b);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y),
 this.activeArrow=e,this.setDisplay("none"),mxEvent.consume(a))}));mxEvent.redirectMouseEvents(e,this.graph,this.currentState);mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isMouseEvent(a)&&(null!=this.activeArrow&&this.activeArrow!=e&&mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.graph.connectionHandler.constraintHandler.reset(),mxUtils.setOpacity(e,100),this.activeArrow=e)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){this.graph.isMouseDown||
 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 d=0;d<this.elts.length;d++)null!=this.elts[d]&&a(this.elts[d])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(d){d.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
-HoverIcons.prototype.drag=function(a,d,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,d,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=d&&d.setHandlesVisible(!1),d=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=d&&"orthogonalEdgeStyle"===
-mxUtils.getValue(d.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),d.cell.style=mxUtils.setStyle(d.cell.style,"sourcePortConstraint",a),d.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,d,e){return this.graph.view.getState(this.graph.getCellAt(d,e))};
-HoverIcons.prototype.click=function(a,d,e){var b=e.getEvent(),h=e.getGraphX(),m=e.getGraphY(),h=this.getStateAt(a,h,m);null==h||!this.graph.model.isEdge(h.cell)||mxEvent.isControlDown(b)||h.getVisibleTerminalState(!0)!=a&&h.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,d,this.graph.defaultEdgeLength,b),this.graph.selectCellsForConnectVertex(a,b,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(b)?this.update(this.getState(this.graph.view.getState(a[1]))):
-this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(h.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.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,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"===
+mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};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 d=e.getEvent(),k=e.getGraphX(),l=e.getGraphY(),k=this.getStateAt(a,k,l);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(d)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,d),this.graph.selectCellsForConnectVertex(a,d,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(d)?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 d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=d&&(a.x-=d.horizontalOffset/2,a.y-=d.verticalOffset/2,a.width+=d.horizontalOffset,a.height+=d.verticalOffset,null!=d.rotationShape&&null!=d.rotationShape.node&&"hidden"!=d.rotationShape.node.style.visibility&&"none"!=d.rotationShape.node.style.display&&null!=d.rotationShape.boundingBox&&a.add(d.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+
+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 d=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()),b=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!=d&&d==e&&e==b&&b==a&&(a=b=e=d=null);var h=this.graph.getCellGeometry(this.currentState.cell),m=mxUtils.bind(this,function(a,d){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==b||null==h||b.height<6*h.height&&b.width<6*h.width)?d.style.visibility="hidden":d.style.visibility="visible"});
-m(d,this.arrowRight);m(e,this.arrowLeft);m(b,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",
+"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()),d=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==d&&d==a&&(a=d=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),l=mxUtils.bind(this,function(a,b){var d=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==d||null==k||d.height<6*k.height&&d.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"});
+l(b,this.arrowRight);l(e,this.arrowLeft);l(d,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(d){null!=d.parentNode&&(d=new mxRectangle(d.offsetLeft,d.offsetTop,d.offsetWidth,d.offsetHeight),null==a?a=d:a.add(d))});return a};
-HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var d=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(a=d)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a};
-HoverIcons.prototype.update=function(a,d,e){if(this.graph.connectionArrowsEnabled){var b=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,b=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,d,e))}),this.updateDelay+10))):null!=this.startTime&&(b=(new Date).getTime()-this.startTime);
-this.setDisplay("");null!=this.currentState&&this.currentState!=a&&b<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,d,e)?this.reset(!1):(null!=this.currentState||b>this.activationDelay)&&this.currentState!=a&&(b>this.updateDelay&&null!=a||null==this.bbox||null==d||null==e||!mxUtils.contains(this.bbox,d,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):
+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};
+HoverIcons.prototype.update=function(a,b,e){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,e))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-this.startTime);
+this.setDisplay("");null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,e)?this.reset(!1):(null!=this.currentState||d>this.activationDelay)&&this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==e||!mxUtils.contains(this.bbox,b,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):
 this.reset())}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 d=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){var b=this.getState(a);null!=b&&this.graph.model.isEdge(b.cell)&&null!=b.style&&1!=b.style[mxConstants.STYLE_CURVED]&&!b.invalid&&this.updateLineJumps(b)&&this.graph.cellRenderer.redraw(b,!1,this.isRendering());b=d.apply(this,arguments);null!=
-b&&this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(b);return b};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.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 c=a.absolutePoints;if(Graph.lineJumpsEnabled){var d=null!=a.routedPoints,b=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,d,f){var e=new mxPoint(d,f);e.type=c;b.push(e);e=null!=a.routedPoints?a.routedPoints[b.length-1]:null;return null==e||e.type!=c||e.x!=d||e.y!=f},r=.5*this.scale,d=!1,b=[],l=0;l<c.length-1;l++){for(var n=c[l+1],w=c[l],v=[],h=c[l+2];l<
-c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,h.x,h.y,n.x,n.y)<1*this.scale*this.scale;)n=h,l++,h=c[l+2];for(var d=e(0,w.x,w.y)||d,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var m=q[t+1],p=q[t],h=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,h.x,h.y,m.x,m.y)<1*this.scale*this.scale;)m=h,t++,h=q[t+2];h=mxUtils.intersection(w.x,w.y,n.x,n.y,p.x,p.y,m.x,m.y);if(null!=h&&(Math.abs(h.x-
-p.x)>r||Math.abs(h.y-p.y)>r)&&(Math.abs(h.x-m.x)>r||Math.abs(h.y-m.y)>r)){m=h.x-w.x;p=h.y-w.y;h={distSq:m*m+p*p,x:h.x,y:h.y};for(m=0;m<v.length;m++)if(v[m].distSq>h.distSq){v.splice(m,0,h);h=null;break}null==h||0!=v.length&&v[v.length-1].x===h.x&&v[v.length-1].y===h.y||v.push(h)}}}for(t=0;t<v.length;t++)d=e(1,v[t].x,v[t].y)||d}h=c[c.length-1];d=e(0,h.x,h.y)||d}a.routedPoints=b;return d}return!1};var h=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,d){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)h.apply(this,arguments);else{var b=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"),l,n=!0,w=null,v=null;l=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t=
-this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var m=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(m=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),l.push(m),this.addPoints(a,l,d,b,!1,
-null,n),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,n=!1,"sharp"==e?(a.lineTo(m.x-q.y*l,m.y+q.x*l),a.lineTo(t.x-q.y*l,t.y+q.x*l),a.lineTo(t.x,t.y)):"arc"==e?(l*=1.3,a.curveTo(m.x-q.y*l,m.y+q.x*l,t.x-q.y*l,t.y+q.x*l,t.x,t.y)):(a.moveTo(t.x,t.y),n=!0),l=[t],m=!0))}else q=null;m||(l.push(z),w=z)}this.addPoints(a,l,d,b,!1,null,n);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,d,b){if(null==c||null==
-a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{c=this.getTerminalPort(a,c,b);var f=this.getNextPoint(a,d,b),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var h=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,h,v,n);h=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);h+=parseFloat(a.style[b?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
-0);f=this.getPerimeterPoint(c,f,0==g&&e,h);0!=g&&(h=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,h,v,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,d,b,f),b)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,d,b,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);b=d=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==b||k<b)d=g,b=k}}null!=d&&(e=d)}return e};
-var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,d){var b=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=d.state&&(b=d.state.view.graph.replacePlaceholders(d.state.cell,b));return b};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var d=
-c.substring(8,c.length-1),b=mxUtils.parseXml(a.view.graph.decompress(d));return new mxShape(new mxStencil(b.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
-mxStencilRegistry.getStencil=function(a){var d=mxStencilRegistry.stencils[a];if(null==d&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){d=mxStencilRegistry.libraries[e];if(null!=d){if(null==mxStencilRegistry.packages[e]){for(var b=0;b<d.length;b++){var h=d[b];if(".xml"==h.toLowerCase().substring(h.length-4,h.length))mxStencilRegistry.loadStencilSet(h,null);else if(".js"==h.toLowerCase().substring(h.length-3,h.length))try{if(mxStencilRegistry.allowEval){var m=
-mxUtils.load(h);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(p){null!=window.console&&console.log("error in getStencil:",h,p)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);d=mxStencilRegistry.stencils[a]}}return d};
-mxStencilRegistry.getBasenameForStencil=function(a){var d=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var d=a[1],e=2;e<a.length-1;e++)d+="/"+a[e];return d};
-mxStencilRegistry.loadStencilSet=function(a,d,e,b){var h=mxStencilRegistry.packages[a];if(null!=e&&e||null==h){var m=!1;if(null==h)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,m=!0,mxStencilRegistry.parseStencilSet(b.documentElement,d,m))}));return}h=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=h;m=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}null!=h&&null!=
-h.documentElement&&mxStencilRegistry.parseStencilSet(h.documentElement,d,m)}};mxStencilRegistry.loadStencil=function(a,d){if(null!=d)mxUtils.get(a,mxUtils.bind(this,function(a){d(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var d=0;d<a.length;d++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[d]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,d,e){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,d,e),b=b.nextSibling;else{e=null!=e?e:!0;var b=a.firstChild,h="";a=a.getAttribute("name");for(null!=a&&(h=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var h=h.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(h+m.toLowerCase(),new mxStencil(b));if(null!=d){var p=b.getAttribute("w"),
-q=b.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);d(h,m,a,p,q)}}b=b.nextSibling}}};
+(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){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=b.apply(this,arguments);null!=
+d&&this.graph.model.isEdge(d.cell)&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var d=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){d.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&
+this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=c||e.x!=b||e.y!=f},r=.5*this.scale,b=!1,d=[],h=0;h<c.length-1;h++){for(var m=c[h+1],w=c[h],v=[],k=c[h+2];h<
+c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,k.x,k.y,m.x,m.y)<1*this.scale*this.scale;)m=k,h++,k=c[h+2];for(var b=e(0,w.x,w.y)||b,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var l=q[t+1],p=q[t],k=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,k.x,k.y,l.x,l.y)<1*this.scale*this.scale;)l=k,t++,k=q[t+2];k=mxUtils.intersection(w.x,w.y,m.x,m.y,p.x,p.y,l.x,l.y);if(null!=k&&(Math.abs(k.x-
+p.x)>r||Math.abs(k.y-p.y)>r)&&(Math.abs(k.x-l.x)>r||Math.abs(k.y-l.y)>r)){l=k.x-w.x;p=k.y-w.y;k={distSq:l*l+p*p,x:k.x,y:k.y};for(l=0;l<v.length;l++)if(v[l].distSq>k.distSq){v.splice(l,0,k);k=null;break}null==k||0!=v.length&&v[v.length-1].x===k.x&&v[v.length-1].y===k.y||v.push(k)}}}for(t=0;t<v.length;t++)b=e(1,v[t].x,v[t].y)||b}k=c[c.length-1];b=e(0,k.x,k.y)||b}a.routedPoints=d;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=
+null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,m=!0,w=null,v=null;h=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t=
+this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var l=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(l=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),h.push(l),this.addPoints(a,h,b,d,!1,
+null,m),h=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,m=!1,"sharp"==e?(a.lineTo(l.x-q.y*h,l.y+q.x*h),a.lineTo(t.x-q.y*h,t.y+q.x*h),a.lineTo(t.x,t.y)):"arc"==e?(h*=1.3,a.curveTo(l.x-q.y*h,l.y+q.x*h,t.x-q.y*h,t.y+q.x*h,t.x,t.y)):(a.moveTo(t.x,t.y),m=!0),h=[t],l=!0))}else q=null;l||(h.push(z),w=z)}this.addPoints(a,h,b,d,!1,null,m);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null==
+a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var k=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,k,v,m);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
+0);f=this.getPerimeterPoint(c,f,0==g&&e,k);0!=g&&(k=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,k,v,m));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var n=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||n<d)b=g,d=n}}null!=b&&(e=b)}return e};
+var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var b=
+c.substring(8,c.length-1),d=mxUtils.parseXml(a.view.graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(n){null!=window.console&&console.log("Error in shape: "+n)}}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 d=0;d<b.length;d++){var k=b[d];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(p){null!=window.console&&console.log("error in getStencil:",k,p)}}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,d){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var l=!1;if(null==k)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,l=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,l))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;l=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}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 d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var k=k.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+l.toLowerCase(),new mxStencil(d));if(null!=b){var p=d.getAttribute("w"),
+q=d.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);b(k,l,a,p,q)}}d=d.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="#29b6f2";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=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var d=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||
-d.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));
-for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var b=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=b.apply(this,arguments),c=a.getCell;
-a.getCell=mxUtils.bind(this,function(a){var d=c.apply(this,arguments);this.error=null;return d});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(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&&
+"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;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));
+for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments),c=a.getCell;
+a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(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,c,d,b){c=null!=c?c:0;d=null!=d?d:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},k=0;k<a;k++){var l=e.getChildAt(e.getRoot(),k);if(1!=a||this.isCellLocked(this.getDefaultParent()))l=this.importCells([l],0,0,this.model.getRoot(),null,g)[0],n=this.model.getChildren(l),this.moveCells(n,c,d),f=f.concat(n);else var n=
-e.getChildren(l),f=f.concat(this.importCells(n,c,d,this.getDefaultParent(),null,g))}if(b){this.isGridEnabled()&&(c=this.snap(c),d=this.snap(d));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,d-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var d=mxUtils.getValue(a.style,"points",null);if(null!=d){var b=[];try{for(var f=JSON.parse(d),d=0;d<f.length;d++){var e=f[d];b.push(new mxConnectionConstraint(new mxPoint(e[0],
-e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return b}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 c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,
-this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),d=0,b=0;b<c;b++){var f=this.model.getChildAt(a,b);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||d++)}return 0<d||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,
-arguments)&&"0"!=mxUtils.getValue(c,"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 c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);null!=d&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=
-function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),d=[];c.beginUpdate();try{for(var b=0;b<a.length;b++){var f=a[b];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var k=c.getGeometry(f);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();
-var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);c.setGeometry(f,k);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,h=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,h);this.setConnectionConstraint(f,g,!1,F)}d.push(f)}}else if(c.isVertex(f)&&(k=this.getCellGeometry(f),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
-2;k.y+=k.height/2-k.width/2;var v=k.width;k.width=k.height;k.height=v;c.setGeometry(f,k);var q=this.view.getState(f);if(null!=q){var w=q.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])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==
-a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};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 c=this.model.getDescendants(a.cell);if(0<c.length)for(var d=0;d<c.length;d++){var b=this.view.getState(c[d]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(c[d]):this.isReplacePlaceholders(c[d])&&
-this.view.invalidate(c[d],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var d=a.ownerDocument.createElement(null!=c?c:"span"),b=Array.prototype.slice.call(a.attributes);attr=b.pop();)d.setAttribute(attr.nodeName,attr.nodeValue);d.innerHTML=a.innerHTML;a.parentNode.replaceChild(d,a)};Graph.prototype.updateLabelElements=function(a,c,d){a=null!=a?a:this.getSelectionCells();for(var b=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);
-if(null!=e&&0<e.length){b.innerHTML=e;for(var g=b.getElementsByTagName(null!=d?d:"*"),k=0;k<g.length;k++)c(g[k]);b.innerHTML!=e&&this.cellLabelChanged(a[f],b.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,d){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&
-f.hasAttribute(b)){this.setAttributeForCell(f,b,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(var b=[],d=0;d<a.length;d++){var f=this.model.getParent(a[d]);null==f||c.get(f)||(c.put(f,!0),b.push(f))}for(d=0;d<b.length;d++)if(f=this.view.getState(b[d]),
+Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},h=0;h<a;h++){var n=e.getChildAt(e.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))n=this.importCells([n],0,0,this.model.getRoot(),null,g)[0],m=this.model.getChildren(n),this.moveCells(m,c,b),f=f.concat(m);else var m=
+e.getChildren(n),f=f.concat(this.importCells(m,c,b,this.getDefaultParent(),null,g))}if(d){this.isGridEnabled()&&(c=this.snap(c),b=this.snap(b));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,b-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
+e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return d}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 c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,
+this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var f=this.model.getChildAt(a,d);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 c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,
+arguments)&&"0"!=mxUtils.getValue(c,"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 c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=
+function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),b=[];c.beginUpdate();try{for(var d=0;d<a.length;d++){var f=a[d];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();
+var n=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);h.setTerminalPoint(n,!1);h.setTerminalPoint(m,!0);c.setGeometry(f,h);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,k=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,k);this.setConnectionConstraint(f,g,!1,F)}b.push(f)}}else if(c.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 v=h.width;h.width=h.height;h.height=v;c.setGeometry(f,h);var q=this.view.getState(f);if(null!=q){var w=q.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{c.endUpdate()}return b};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==
+a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};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 c=this.model.getDescendants(a.cell);if(0<c.length)for(var b=0;b<c.length;b++){var d=this.view.getState(c[b]);null!=d&&null!=d.shape&&null!=d.shape.stencil&&this.stencilHasPlaceholders(d.shape.stencil)?this.removeStateForCell(c[b]):this.isReplacePlaceholders(c[b])&&
+this.view.invalidate(c[b],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);
+if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),h=0;h<g.length;h++)c(g[h]);d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&
+f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var d=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}for(b=0;b<d.length;b++)if(f=this.view.getState(d[b]),
 null!=f&&(this.model.isEdge(f.cell)||this.model.isVertex(f.cell))&&this.isCellDeletable(f.cell)){var e=mxUtils.getValue(f.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),g=mxUtils.getValue(f.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);if(e==mxConstants.NONE&&g==mxConstants.NONE){e=!0;for(g=0;g<this.model.getChildCount(f.cell)&&e;g++)c.get(this.model.getChildAt(f.cell,g))||(e=!1);e&&a.push(f.cell)}}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=
-function(a){for(var c=[],d=0;d<a.length;d++)if(this.isCellDeletable(a[d])){var b=this.view.getState(a[d]);if(null!=b){var f=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&b==mxConstants.NONE&&c.push(a[d])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=
-function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,d){var b;null!=a.value&&"object"==typeof a.value?b=a.value.cloneNode(!0):(b=mxUtils.createXmlDocument().createElement("UserObject"),b.setAttribute("label",a.value||""));null!=d&&0<d.length?b.setAttribute(c,d):b.removeAttribute(c);this.model.setValue(a,b)};Graph.prototype.getDropTarget=function(a,c,d,b){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;
-return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var d=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var b=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=b||this.firstClickSource!=
-f||null!=b&&null!=b.text&&null!=b.text.node&&(mxUtils.contains(b.text.boundingBox,d.x,d.y)||mxUtils.isAncestorNode(b.text.node,mxEvent.getSource(a)))||(null!=b||this.isCellLocked(this.getDefaultParent()))&&(null==b||this.isCellLocked(b.cell))||!(null!=b||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(d.x,d.y,b))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/
-this.view.scale-this.view.translate.x,d=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var b=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,b.x*f.width),d=Math.max(d,b.y*f.height);return new mxPoint(this.snap(c+a),this.snap(d+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),d=this.getInsertPoint(),b=this.snap(Math.round(Math.max(d.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(d.y,
-(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(b,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,d){var b=new mxCell;b.value="Text";b.style="text;html=1;resizable=0;points=[];";b.geometry=new mxGeometry(0,0,0,0);b.vertex=!0;if(null!=d){b.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";b.geometry.relative=!0;b.connectable=!1;var f=this.view.getRelativePoint(d,a,c);b.geometry.x=Math.round(1E4*f.x)/
-1E4;b.geometry.y=Math.round(f.y);b.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(d,b.geometry),e=this.view.scale;b.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else b.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,b.geometry.width=40,b.geometry.height=20,b.geometry.x=Math.round(a/this.view.scale)-f.x,b.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([b],null!=d?d.cell:null),
-this.fireEvent(new mxEventObject("textInserted","cells",[b])),this.autoSizeCell(b)}finally{this.getModel().endUpdate()}return b};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,d){var b=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var d=0;d<a.length;d++){var b=this.getAbsoluteUrl(a[d].getAttribute("href"));
-null!=b&&(a[d].setAttribute("rel",this.linkRelation),a[d].setAttribute("href",b),null!=c&&mxEvent.addGestureListeners(a[d],null,null,c))}});this.model.addListener(mxEvent.CHANGE,b);b();var f=this.container.style.cursor,e=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=
-g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,d){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor=
-"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-c.getGraphX()),b=Math.abs(this.startY-c.getGraphY());(d>e||b>e)&&this.clear()}}else{for(d=c.getSource();null!=d&&"a"!=d.nodeName.toLowerCase();)d=d.parentNode;null!=d?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||
-!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,b){for(var f=b.getSource(),k=b.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==b.sourceState||!b.isSource(b.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=
-this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(k,this.currentLink),mxEvent.isConsumed(k)||(k=mxEvent.isMiddleMouseButton(k)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,k),b.consume())):null!=d&&!b.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-b.getGraphX())<e&&Math.abs(this.startY-b.getGraphY())<e&&d(b.getEvent()));this.clear()},activate:function(a){this.currentLink=
-g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,
-c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var d=this.getModel(),b=this.gridSize,f=[];d.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=d.getParent(a[g]),l=this.moveCells([e[g]],b,b,!1)[0];f.push(l);if(c)d.add(k,e[g]);else{var n=k.getIndex(a[g]);d.add(k,e[g],n+1)}}}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,d){if(null!=a){for(var b=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<b.length;e++)f.push(b[e]);
-document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",d);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),d=[],b=0;b<c.length;b++)d.push(c[b]);document.execCommand("createlink",!1,mxUtils.trim(a));
-c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==d.length+1)for(b=c.length-1;0<=b;b--)if(c[b]!=d[b-1]){for(c=c[b].getElementsByTagName("a");0<c.length;){for(d=c[0].parentNode;null!=c[0].firstChild;)d.insertBefore(c[0].firstChild,c[0]);d.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);
-return c||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var d=[],b=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),b=null!=b?Math.max(b,k):k,f=null!=f?Math.min(f,k):k;d.push(g)}}if(2<d.length){d.sort(function(c,d){return a?c.x-d.x:c.y-d.y});
-g=this.view.translate;k=this.view.scale;f=f/k-(a?g.x:g.y);b=b/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(b-f)/(d.length-1),b=f,e=1;e<d.length-1;e++){var n=this.view.getState(this.model.getParent(d[e].cell)),t=this.getCellGeometry(d[e].cell),b=b+l;null!=t&&null!=n&&(t=t.clone(),a?t.x=Math.round(b-t.width/2)-n.origin.x:t.y=Math.round(b-t.height/2)-n.origin.y,this.getModel().setGeometry(d[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&
-mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<c.length;b++){var f=this.view.getState(a[b]);if(null!=f){var e=this.getCellGeometry(c[b]);null==e||!e.relative||this.model.isEdge(a[b])||d.get(this.model.getParent(a[b]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}d=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(),
-0);for(b=0;b<a.length;b++)f.add(e,c[b]);return d.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,d,b,f,e,g,k,l){var n=this.useCssTransforms;n&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;d=null!=d?d:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||b?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());
-if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),h=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=h.style?h.style.backgroundColor=a:h.setAttribute("style","background-color:"+a));null==y.createElementNS?(h.setAttribute("xmlns",mxConstants.NS_SVG),h.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
-a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*d),w=Math.max(1,Math.ceil(t.height*a)+2*d);h.setAttribute("version","1.1");h.setAttribute("width",v+"px");h.setAttribute("height",w+"px");h.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(h);var q=this.createSvgCanvas(h);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((d/c-t.x)/r),Math.floor((d/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent=
-function(a,c,d,b,f,e,g,k,l,n,t,r,y){var h=this.state;if(null!=this.foAltText&&(0==b||0!=h.fontSize&&e.length<5*b/h.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(b/2));v.setAttribute("y",Math.round((f+h.fontSize)/2));v.setAttribute("fill",h.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(h.fontSize)+"px");v.setAttribute("font-family",h.fontFamily);(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight",
-"bold");(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(h.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var m=this.backgroundImage;if(null!=m){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,m.width*c,m.height*c);mxUtils.intersects(t,p)&&
-q.image(F.x,F.y,m.width,m.height,m.src,!0)}q.scale(a);q.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var B=k.drawCellState;k.drawCellState=function(a,c){for(var d=a.view.graph,b=d.isCellSelected(a.cell),f=d.model.getParent(a.cell);!e&&!b&&null!=f;)b=d.isCellSelected(f),f=d.model.getParent(f);(e||b)&&B.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),q);null!=l&&this.updateLinkTargets(h,l);return h}finally{n&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};
-Graph.prototype.updateLinkTargets=function(a,c){for(var d=a.getElementsByTagName("a"),b=0;b<d.length;b++){var f=d[b].getAttribute("href");null==f&&(f=d[b].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&d[b].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&
-(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,d){for(;null!=a&&a.nodeName!=c;){if(a==d)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var d=document.createRange();d.selectNode(a);c.removeAllRanges();c.addRange(d)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),d=c.createRange(),d.setEndPoint("StartToStart",
-a),d.select())};Graph.prototype.insertRow=function(a,c){for(var d=a.tBodies[0],b=d.rows[0].cells,f=0,e=0;e<b.length;e++)var g=b[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);d=d.insertRow(c);for(e=0;e<f;e++)mxUtils.br(d.insertCell(-1));return d.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var d=a.tHead;if(null!=d)for(var b=0;b<d.rows.length;b++){var f=document.createElement("th");d.rows[b].appendChild(f);mxUtils.br(f)}d=
-a.tBodies[0];for(b=0;b<d.rows.length;b++)f=d.rows[b].insertCell(c),mxUtils.br(f);return d.rows[0].cells[0<=c?c:d.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var d=a.tBodies[0].rows,b=0;b<d.length;b++)d[b].cells.length>c&&d[b].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var d=document.createElement("div");d.innerHTML=a;a=document.createDocumentFragment();
-for(var b;b=d.firstChild;)lastNode=a.appendChild(b);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function d(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var b=document.createElement("a");b.setAttribute("rel",this.linkRelation);b.setAttribute("href",
-this.getAbsoluteUrl(a));b.setAttribute("title",d(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);mxUtils.write(b,d(c,40));this.isCustomLink(a)&&mxEvent.addListener(b,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,
-function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var d=this.getCellAt(c.graphX,c.graphY);null!=d&&this.isSwimlane(d)&&this.hitsSwimlaneContent(d,c.graphX,c.graphY)||(c.state=this.view.getState(d),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor=
-"default");return c};var c=!1,d=!1,b=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),d=this.isSelectionEmpty(),b=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||
-!b&&!mxEvent.isMouseEvent(f.getEvent())&&(d&&null==f.getCell()&&this.isSelectionEmpty()||c&&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 c=[],d=0,b=a.rangeCount;d<
-b;++d)c.push(a.getRangeAt(d));return c}}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 c=0,d=a.length;c<d;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};var h=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&
-(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));h.apply(this,arguments)};var m=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){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 p=mxCellEditor.prototype.startEditing;
-mxCellEditor.prototype.startEditing=function(a,c){p.apply(this,arguments);var d=this.graph.view.getState(a);this.textarea.className=null!=d&&1==d.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var d=this.graph.getModel().getParent(a),b=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(d)&&null!=b&&b.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 c(a,d){d.originalNode=a;a=a.firstChild;for(var b=d.firstChild;null!=a&&null!=b;)c(a,b),a=a.nextSibling,b=b.nextSibling;return d}function d(a,c){if(null!=a)if(c.originalNode!=
-a)b(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?b(a):(d(a,c),c=c.nextSibling);a=f}}function b(a){for(var c=a.firstChild;null!=c;){var d=c.nextSibling;b(c);c=d}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 b=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){d(this.textarea,b)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),
-c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),d=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),
-f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(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(b*mxConstants.LINE_HEIGHT)+
-"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,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 k=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(k=mxUtils.replaceTrailingNewlines(k,"<div><br></div>"));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var b=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=
-mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(b*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"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!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&
-this.restoreSelection(this.switchSelectionState);this.switchSelectionState=d;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var d=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*d;this.bounds.height=60*d;var b=null!=a.text?a.text.margin:null;null==b&&(b=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+=b.x*this.bounds.width;this.bounds.y+=b.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/d)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/d)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/d)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*d);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/d)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*d);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=d:mxUtils.setPrefixedStyle(this.textarea.style,
-"transform","scale("+d+","+d+")")}else this.textarea.style.height="",this.textarea.style.overflow="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var d=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(d=d.replace(/\n/g,"<br/>"));return d=this.graph.sanitizeHtml(d,!0)};
+function(a){for(var c=[],b=0;b<a.length;b++)if(this.isCellDeletable(a[b])){var d=this.view.getState(a[b]);if(null!=d){var f=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&d==mxConstants.NONE&&c.push(a[b])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=
+function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b&&0<b.length?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;
+return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var d=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=
+f||null!=d&&null!=d.text&&null!=d.text.node&&(mxUtils.contains(d.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(b.x,b.y,d))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/
+this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,d.x*f.width),b=Math.max(b,d.y*f.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),d=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y,
+(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var d=new mxCell;d.value="Text";d.style="text;html=1;resizable=0;points=[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=b){d.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";d.geometry.relative=!0;d.connectable=!1;var f=this.view.getRelativePoint(b,a,c);d.geometry.x=Math.round(1E4*f.x)/
+1E4;d.geometry.y=Math.round(f.y);d.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(b,d.geometry),e=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else d.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-f.x,d.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([d],null!=b?b.cell:null),
+this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,b){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var d=this.getAbsoluteUrl(a[b].getAttribute("href"));
+null!=d&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",d),null!=c&&mxEvent.addGestureListeners(a[b],null,null,c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=
+g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor=
+"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=Math.abs(this.startX-c.getGraphX()),d=Math.abs(this.startY-c.getGraphY());(b>e||d>e)&&this.clear()}}else{for(b=c.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||
+!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,d){for(var f=d.getSource(),h=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=
+this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,h),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink=
+g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,
+c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),d=this.gridSize,f=[];b.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var h=b.getParent(a[g]),n=this.moveCells([e[g]],d,d,!1)[0];f.push(n);if(c)b.add(h,e[g]);else{var m=h.getIndex(a[g]);b.add(h,e[g],m+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,b){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]);
+document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",b);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],d=0;d<c.length;d++)b.push(c[d]);document.execCommand("createlink",!1,mxUtils.trim(a));
+c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(d=c.length-1;0<=d;d--)if(c[d]!=b[d-1]){for(c=c[d].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);
+return c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,f=null!=f?Math.min(f,h):h;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});
+g=this.view.translate;h=this.view.scale;f=f/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var n=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var m=this.view.getState(this.model.getParent(b[e].cell)),t=this.getCellGeometry(b[e].cell),d=d+n;null!=t&&null!=m&&(t=t.clone(),a?t.x=Math.round(d-t.width/2)-m.origin.x:t.y=Math.round(d-t.height/2)-m.origin.y,this.getModel().setGeometry(b[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&
+mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),b=new mxDictionary,d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<c.length;d++){var f=this.view.getState(a[d]);if(null!=f){var e=this.getCellGeometry(c[d]);null==e||!e.relative||this.model.isEdge(a[d])||b.get(this.model.getParent(a[d]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}b=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(),
+0);for(d=0;d<a.length;d++)f.add(e,c[d]);return b.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,h,n){var m=this.useCssTransforms;m&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());
+if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),k=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=k.style?k.style.backgroundColor=a:k.setAttribute("style","background-color:"+a));null==y.createElementNS?(k.setAttribute("xmlns",mxConstants.NS_SVG),k.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):k.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
+a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*b),w=Math.max(1,Math.ceil(t.height*a)+2*b);k.setAttribute("version","1.1");k.setAttribute("width",v+"px");k.setAttribute("height",w+"px");k.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(k);var q=this.createSvgCanvas(k);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((b/c-t.x)/r),Math.floor((b/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent=
+function(a,c,b,d,f,e,g,h,n,m,t,r,y){var k=this.state;if(null!=this.foAltText&&(0==d||0!=k.fontSize&&e.length<5*d/k.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(d/2));v.setAttribute("y",Math.round((f+k.fontSize)/2));v.setAttribute("fill",k.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(k.fontSize)+"px");v.setAttribute("font-family",k.fontFamily);(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight",
+"bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var l=this.backgroundImage;if(null!=l){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,l.width*c,l.height*c);mxUtils.intersects(t,p)&&
+q.image(F.x,F.y,l.width,l.height,l.src,!0)}q.scale(a);q.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var A=h.drawCellState;h.drawCellState=function(a,c){for(var b=a.view.graph,d=b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!e&&!d&&null!=f;)d=b.isCellSelected(f),f=b.model.getParent(f);(e||d)&&A.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),q);null!=n&&this.updateLinkTargets(k,n);return k}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};
+Graph.prototype.updateLinkTargets=function(a,c){for(var b=a.getElementsByTagName("a"),d=0;d<b.length;d++){var f=b[d].getAttribute("href");null==f&&(f=b[d].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&b[d].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&
+(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",
+a),b.select())};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],d=b.rows[0].cells,f=0,e=0;e<d.length;e++)var g=d[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);b=b.insertRow(c);for(e=0;e<f;e++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var d=0;d<b.rows.length;d++){var f=document.createElement("th");b.rows[d].appendChild(f);mxUtils.br(f)}b=
+a.tBodies[0];for(d=0;d<b.rows.length;d++)f=b.rows[d].insertCell(c),mxUtils.br(f);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,d=0;d<b.length;d++)b[d].cells.length>c&&b[d].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();
+for(var d;d=b.firstChild;)lastNode=a.appendChild(d);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href",
+this.getAbsoluteUrl(a));d.setAttribute("title",b(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,b(c,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,
+function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var b=this.getCellAt(c.graphX,c.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,c.graphX,c.graphY)||(c.state=this.view.getState(b),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor=
+"default");return c};var c=!1,b=!1,d=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),b=this.isSelectionEmpty(),d=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||
+!d&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||c&&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 c=[],b=0,d=a.rangeCount;b<
+d;++b)c.push(a.getRangeAt(b));return c}}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 c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};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,c){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 p=mxCellEditor.prototype.startEditing;
+mxCellEditor.prototype.startEditing=function(a,c){p.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),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&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 q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=
+a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?d(a):(b(a,c),c=c.nextSibling);a=f}}function d(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;d(c);c=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 d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),
+c=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(c?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),
+f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(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=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;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(c?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=b;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){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 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)/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="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"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 c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var c=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
-this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var d=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(a.style,
-mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&d==mxConstants.NONE&&b==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=
-function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,d,b,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,b=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/
-b-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/b-d.y);this.hint.innerHTML=c+", "+d;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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){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),d=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&b==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=
+function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,b,d,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,d=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/
+d-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/d-b.y);this.hint.innerHTML=c+", "+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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
 !mxEvent.isControlDown(c.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,c){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(c.getEvent())||mxEvent.isMetaDown(c.getEvent())};
-var k=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=k.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+var n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){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;":(c=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/c)+" x "+this.roundLength(this.bounds.height/c)),c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==c&&(c=this.bounds),this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=c.y+c.height+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(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var b=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(d.x/f-b.x),b=this.roundLength(d.y/f-b.y);this.hint.innerHTML=e+", "+b;this.hint.style.visibility=
-"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+this.state.view.graph.gridSize+"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(c,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(b.x/f-d.x),d=this.roundLength(b.y/f-d.y);this.hint.innerHTML=e+", "+d;this.hint.style.visibility=
+"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),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="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+
 "/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" 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="'+HoverIcons.prototype.arrowFill+'" 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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":
@@ -2410,146 +2412,146 @@ HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.trian
 !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 c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var r=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){r.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c=
-a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var d=null!=this.div&&"none"!=this.div.style.display,
-b=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(b=this.first.x,f=this.first.y,e=(this.currentX-b)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(d){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,
-this.y,this.width,this.height),k=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(b,f,this.graph.getDefaultParent(),!0,!0),d=0;d<k.length;d++)if(this.graph.isCellMovable(k[d])){var l=this.graph.view.getState(k[d]),n=this.graph.getCellGeometry(k[d]);null!=l&&null!=n&&(n=n.clone(),n.translate(e,g),this.graph.model.setGeometry(k[d],n))}}finally{this.graph.model.endUpdate()}}else e=
-new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var d=mxUtils.getScrollOrigin(this.graph.container),b=mxUtils.getOffset(this.graph.container);d.x-=b.x;d.y-=b.y;var b=c.getX()+d.x,d=c.getY()+d.y,f=this.first.x-b,e=this.first.y-d,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),
-this.update(b,d),this.isSpaceEvent(c)?(b=this.x+this.width,d=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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=b-this.width),this.y<this.first.y&&(this.y=d-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor=
+a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var b=null!=this.div&&"none"!=this.div.style.display,
+d=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,f=this.first.y,e=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,
+this.y,this.width,this.height),h=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(d,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]),m=this.graph.getCellGeometry(h[b]);null!=n&&null!=m&&(m=m.clone(),m.translate(e,g),this.graph.model.setGeometry(h[b],m))}}finally{this.graph.model.endUpdate()}}else e=
+new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),
+this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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=d-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)),c.consume()}};var l=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null);l.apply(this,arguments)};var n=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,d,b){v.apply(this,arguments);d!=this.currentTerminalState?(n=(new Date).getTime(),w=0):w=(new Date).getTime()-n;this.currentTerminalState=d};var B=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&
-2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&B.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var d=null!=a&&0==a,b=this.state.getVisibleTerminalState(d),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,
-b,d):null,d=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),f):null)?this.fixedHandleImage:null!=f&&null!=b?this.terminalHandleImage:this.handleImage;if(null!=d)return d=new mxImageShape(new mxRectangle(0,0,d.width,d.height),d.src),d.preserveImageAspect=!1,d;d=mxConstants.HANDLE_SIZE;this.preferHtml&&--d;return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;
-mxVertexHandler.prototype.createSizerShape=function(a,c,d){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),d=c.getParent(a[0]),b=this.graph.getCellGeometry(a[0]);if(c.isEdge(d)&&null!=b&&b.relative&&(c=this.graph.view.getState(a[0]),
-null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),d=c.getParent(a.cell),b=this.graph.getCellGeometry(a.cell);return c.isEdge(d)&&null!=b&&b.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,
-new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var d=this.graph.getModel(),b=d.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!d.isEdge(b)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=
+"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)),c.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 m=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){v.apply(this,arguments);b!=this.currentTerminalState?(m=(new Date).getTime(),w=0):w=(new Date).getTime()-m;this.currentTerminalState=b};var A=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&
+2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&A.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,
+d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;
+mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),
+null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,
+new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.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 G=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){G.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=
-this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var A=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){A.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",
-mxResources.get("rotateTooltip"));var c=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,d){c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);this.updateLinkHint(d,
-b);if(null!=d||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,d){if(null==c&&(null==d||0==d.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=d&&0<d.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));
-this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var b=document.createElement("img");b.setAttribute("src",Editor.editImage);b.setAttribute("title",mxResources.get("editLink"));b.setAttribute("width","11");b.setAttribute("height","11");b.style.marginLeft="10px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,
-function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));b=document.createElement("img");b.setAttribute("src",Dialog.prototype.clearImage);b.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));b.setAttribute("width","13");b.setAttribute("height","10");b.style.marginLeft="4px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,
-null);mxEvent.consume(a)}))}if(null!=d)for(b=0;b<d.length;b++){var f=document.createElement("div");f.style.marginTop=null!=c||0<b?"6px":"0px";f.appendChild(this.graph.createLinkForHint(d[b].getAttribute("href"),mxUtils.getTextContent(d[b])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.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(c,d){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);
-this.changeHandler=mxUtils.bind(this,function(c,d){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 c=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);if(null!=c||null!=d&&0<d.length)this.updateLinkHint(c,d),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 C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),d=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",a),a=null!=d?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==d&&(d=this.state);d=d.y+d.height;null!=c&&(d=Math.max(d,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(d+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=
+this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",
+mxResources.get("rotateTooltip"));var c=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){c()});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));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);this.updateLinkHint(b,
+d);if(null!=b||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,b){if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));
+this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,
+function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));d=document.createElement("img");d.setAttribute("src",Dialog.prototype.clearImage);d.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));d.setAttribute("width","13");d.setAttribute("height","10");d.style.marginLeft="4px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,
+null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var f=document.createElement("div");f.style.marginTop=null!=c||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.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(c,b){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);
+this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var 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 C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||
+"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==b&&(b=this.state);b=b.y+b.height;null!=c&&(b=Math.max(b,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=
 function(){I.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){R.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 P=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(P.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 X=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){X.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var U=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){U.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 d(){mxActor.call(this)}function e(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function m(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function r(){mxActor.call(this)}function l(a,c){this.canvas=
-a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,l.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,l.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,l.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,l.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,l.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,l.prototype.arcTo)}function n(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function B(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function A(){mxShape.call(this)}
+(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 d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function l(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function n(){mxActor.call(this)}function r(){mxActor.call(this)}function h(a,c){this.canvas=
+a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,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 m(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function B(){mxShape.call(this)}
 function J(){mxEllipse.call(this)}function K(){mxShape.call(this)}function x(){mxShape.call(this)}function C(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function R(){mxShape.call(this)}function P(){mxShape.call(this)}function X(){mxShape.call(this)}function U(){mxShape.call(this)}function F(){mxCylinder.call(this)}function ea(){mxDoubleEllipse.call(this)}function ka(){mxDoubleEllipse.call(this)}function Y(){mxArrowConnector.call(this);this.spacing=0}function ba(){mxArrowConnector.call(this);
 this.spacing=0}function L(){mxActor.call(this)}function E(){mxRectangleShape.call(this)}function S(){mxActor.call(this)}function M(){mxActor.call(this)}function N(){mxActor.call(this)}function T(){mxActor.call(this)}function D(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxActor.call(this)}function ga(){mxActor.call(this)}function W(){mxActor.call(this)}function aa(){mxActor.call(this)}function Z(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function ra(){mxEllipse.call(this)}
-function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,d,b,f,e,g,k,l,n){g+=l;var na=b.clone();b.x-=f*(2*g+l);b.y-=e*(2*g+l);f*=g+l;e*=g+l;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,
-mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(c,f),a.lineTo(0,f-c),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 Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/Ba);a.translate((b-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-20;e.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(b,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((b-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-
-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,b,-c/3,b,c),a.lineTo(b,f-c),a.curveTo(b,f+c/3,0,f+c/3,0,f-c),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(h,mxCylinder);h.prototype.size=30;h.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(b-c,0),a.lineTo(b-c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",h);mxUtils.extend(m,mxActor);m.prototype.redrawPath=
-function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b/2,.5*f,b,0);a.quadTo(.5*b,f/2,b,f);a.quadTo(b/2,.5*f,0,f);a.quadTo(.5*b,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));
-var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,d),a.lineTo(c,d)):(a.moveTo(b-c,d),a.lineTo(b,d)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,d),a.lineTo(b,d)):(a.moveTo(0,d),a.lineTo(b-c,d),a.lineTo(b-c,0),a.lineTo(b,0)),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,d),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c,
-d,b,f){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.moveTo(0,c/2);a.quadTo(b/4,1.4*c,b/2,c/2);a.quadTo(3*b/4,c*(1-1.4),b,c/2);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),d=a.width,b=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=
-b,new mxRectangle(a.x,a.y+c,d,b-2*c);c*=d;return new mxRectangle(a.x+c,a.y,d-2*c,b)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.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};c.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,
-0);a.lineTo(b,0);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,d,b){var f=mxUtils.getValue(this.style,"size");return null!=f?b*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,
-"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b-c,f)],this.isRounded,
-d,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("trapezoid",
-g);mxUtils.extend(k,mxActor);k.prototype.size=.5;k.prototype.redrawPath=function(a,c,d,b,f){a.setFillColor(null);c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(b,f)],this.isRounded,d,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",
-k);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,d,b,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=b/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);l.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};l.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,
-this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};l.prototype.quadTo=function(a,c,d,b){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=b};l.prototype.curveTo=function(a,c,d,b,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};l.prototype.arcTo=function(a,c,d,b,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};l.prototype.lineTo=function(a,c){if(null!=
-this.lastX&&null!=this.lastY){var d=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},b=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(b*b+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var k=d(a-this.lastX)*b/g,d=d(c-this.lastY)*f/g,b=b/e,f=f/e,e=0;e<g;e++){var l=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,k*e+this.lastX-l*f,d*e+this.lastY-
-l*b)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};l.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 Ha=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 l(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.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,c,d,b,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(b/2,Math.min(f/
-2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(b*e,f*e)),a.moveTo(c+e,d),a.lineTo(c+b-e,d),a.quadTo(c+b,d,c+b,d+e),a.lineTo(c+b,d+f-e),a.quadTo(c+b,d+f,c+b-e,d+f),a.lineTo(c+e,d+f),a.quadTo(c,d+f,c,d+f-e),a.lineTo(c,d+e),a.quadTo(c,d,c+e,d)):(a.moveTo(c,d),a.lineTo(c+b,d),a.lineTo(c+b,d+f),a.lineTo(c,d+f),a.lineTo(c,d)),a.close(),a.end(),a.fillAndStroke()}};
-var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,d,b,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(n,mxRectangleShape);n.prototype.size=.1;n.prototype.isHtmlAllowed=function(){return!1};n.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 c=a.width,d=a.height;
-a=new mxRectangle(a.x,a.y,c,d);var b=c*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,b=Math.max(b,Math.min(c*f,d*f));a.x+=Math.round(b);a.width-=Math.round(2*b)}return a};n.prototype.paintForeground=function(a,c,d,b,f){var e=b*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,e=Math.max(e,Math.min(b*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,d);a.lineTo(c+e,d+f);a.moveTo(c+b-e,d);a.lineTo(c+b-e,d+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",n);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,d,b,f){a.setFillColor(mxConstants.NONE);a.rect(c,d,b,f);a.fill()};w.prototype.paintForeground=function(a,
-c,d,b,f){};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.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,d,b,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;d=Math.max(0,Math.min(f,
-parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),k=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-d),new mxPoint(Math.min(b,e+k),f-d),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-d),new mxPoint(0,
-f-d)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(B,mxActor);B.prototype.size=.2;B.prototype.fixedSize=20;B.prototype.isRoundable=function(){return!0};B.prototype.redrawPath=function(a,c,d,b,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("step",B);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.5*f),new mxPoint(b-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,d,b,f){var e=Math.min(b/5,f/5)+1;a.begin();a.moveTo(c+b/2,d+e);a.lineTo(c+b/2,d+f-e);a.moveTo(c+e,d+f/2);a.lineTo(c+b-e,d+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,d,b,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+
-1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,d,b,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,d,
-b,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var k=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],l=this.style["symbol"+e+"Width"],n=this.style["symbol"+e+"Height"],t=
-this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(b+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,h=d,y=k==mxConstants.ALIGN_CENTER?y+(b-l)/2:k==mxConstants.ALIGN_RIGHT?y+(b-l-t):y+t,h=na==mxConstants.ALIGN_MIDDLE?h+(f-n)/2:na==mxConstants.ALIGN_BOTTOM?h+(f-n-r):h+r;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,y,h,l,n);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,d,b,f,e){e?(a.moveTo(0,0),a.lineTo(b/2,f/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.ellipse(b/4,0,b/2,f/4);a.fillAndStroke();a.begin();a.moveTo(b/2,f/4);a.lineTo(b/2,2*f/3);a.moveTo(b/2,f/3);a.lineTo(0,
-f/3);a.moveTo(b/2,f/3);a.lineTo(b,f/3);a.moveTo(b/2,2*f/3);a.lineTo(0,f);a.moveTo(b/2,2*f/3);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(A,mxShape);A.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};A.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);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(b/6,f/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,f);a.fillAndStroke()};
-mxCellRenderer.registerShape("umlBoundary",A);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+b/8,d+f);a.lineTo(c+7*b/8,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(b,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",
-K);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,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,0);a.end();a.stroke();a.ellipse(0,f/8,b,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,d,b,f){a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape);
-C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=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,c)};C.prototype.paintBackground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,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,c,d,b,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,d,b,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+b/2,d+e),a.lineTo(c+b/2,d+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,d,b,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",
-C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.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))};I.prototype.paintBackground=function(a,c,d,b,f){var e=this.corner,g=Math.min(b,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(f,Math.max(1.5*
-e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),l=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);l!=mxConstants.NONE&&(a.setFillColor(l),a.rect(c,d,b,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,d,b,f),a.setGradient(this.fill,this.gradient,c,d,b,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,d);a.lineTo(c+g,d);a.lineTo(c+g,d+Math.max(0,
-k-1.5*e));a.lineTo(c+Math.max(0,g-e),d+k);a.lineTo(c,d+k);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+b,d);a.lineTo(c+b,d+f);a.lineTo(c,d+f);a.lineTo(c,d+k);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,d,b){b=C.prototype.size;null!=c&&(b=mxUtils.getValue(c.style,"size",b)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;d.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+
-c,Math.min(a.y+a.height,Math.max(a.y+b,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,d,b){b=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,d,b){b=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(b+=parseFloat(c.style.backboneSize)*
-c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return d.x<a.getCenterX()&&(b=-1*(b+1)),new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y,d.y)));d.y<a.getCenterY()&&(b=-1*(b+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,d.x)),a.getCenterY()+b)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,d,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,
-new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,d,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,d,b){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==
-mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l,k+e),new mxPoint(g+l,k+n),new mxPoint(g,k+n-e),new mxPoint(g,k)]):(e=l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+e,k),new mxPoint(g+l,k),new mxPoint(g+l-e,k+n),new mxPoint(g,k+n),new mxPoint(g+e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<g||d.x>g+l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("parallelogramPerimeter",
-mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,d,b){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e+f,k),new mxPoint(e+l-f,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n),new mxPoint(e+f,k)]):c==mxConstants.DIRECTION_WEST?
-(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k),new mxPoint(e+l-f,k+n),new mxPoint(e+f,k+n),new mxPoint(e,k)]):c==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k+f),new mxPoint(e+l,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n-f),new mxPoint(e,k+f)]):(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k+f),new mxPoint(e+l,k+n-f),new mxPoint(e,k+n),new mxPoint(e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<e||d.x>e+
-l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,d,b){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?B.prototype.fixedSize:B.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;
-c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l-f,k),new mxPoint(g+l,a),new mxPoint(g+l-f,k+n),new mxPoint(g,k+n),new mxPoint(g+f,a),new mxPoint(g,k)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+f,k),new mxPoint(g+l,k),new mxPoint(g+l-f,a),new mxPoint(g+l,k+n),new mxPoint(g+f,k+n),new mxPoint(g,a),new mxPoint(g+f,k)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,
-Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k+f),new mxPoint(t,k),new mxPoint(g+l,k+f),new mxPoint(g+l,k+n),new mxPoint(t,k+n-f),new mxPoint(g,k+n),new mxPoint(g,k+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(t,k+f),new mxPoint(g+l,k),new mxPoint(g+l,k+n-f),new mxPoint(t,k+n),new mxPoint(g,k+n-f),new mxPoint(g,k)]);t=new mxPoint(t,a);b&&(d.x<g||d.x>g+l?t.y=d.y:t.x=d.x);return mxUtils.getPerimeterPoint(k,t,d)};mxStyleRegistry.putValue("stepPerimeter",
-mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,d,b){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,k=a.width,l=a.height,n=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=l*Math.max(0,Math.min(1,f)),g=[new mxPoint(n,g),new mxPoint(e+k,g+f),new mxPoint(e+k,g+l-f),new mxPoint(n,
-g+l),new mxPoint(e,g+l-f),new mxPoint(e,g+f),new mxPoint(n,g)]):(f=k*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+f,g),new mxPoint(e+k-f,g),new mxPoint(e+k,a),new mxPoint(e+k-f,g+l),new mxPoint(e+f,g+l),new mxPoint(e,a),new mxPoint(e+f,g)]);n=new mxPoint(n,a);b&&(d.x<e||d.x>e+k?n.y=d.y:n.x=d.x);return mxUtils.getPerimeterPoint(g,n,d)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,d,b,
-f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,d);a.ellipse((b-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(b/2,e);a.lineTo(b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,
-d);a.begin();a.moveTo(b/2,e+g);a.lineTo(b/2,f);a.end();a.stroke();a.begin();a.moveTo((b-e)/2-g,e/2);a.quadTo((b-e)/2-g,e+g,b/2,e+g);a.quadTo((b+e)/2+g,e+g,(b+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset=
-2;U.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,d);a.ellipse(0,e,b-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(b/2,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,d,b,f,e){var g=parseFloat(mxUtils.getValue(this.style,
-"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=.3*f-c/2,l=.7*f-c/2;e?(a.moveTo(d,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(d,k+c),a.moveTo(d,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(d,l+c)):(a.moveTo(d,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(d,f),a.lineTo(d,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(d,l),a.lineTo(d,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(d,k),a.close());a.end()};mxCellRenderer.registerShape("component",
-F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,d,b,f){var e=Math.min(4,Math.min(b/5,f/5));0<b&&0<f&&(a.ellipse(c+e,d+e,b-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,d,b,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded=
+function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,b,d,f,e,g,h,n,m){g+=n;var na=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,
+mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,f),a.lineTo(c,f),a.lineTo(0,f-c),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 Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ba);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size=
+20;e.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-
+1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};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(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(d-c,0),a.lineTo(d-c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,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,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));
+var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,b),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d,b)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,b),a.lineTo(d,b)):(a.moveTo(0,b),a.lineTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d,0)),a.lineTo(d,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c,
+b,d,f){c=Math.max(0,Math.min(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(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=
+d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-2*c,d)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.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};c.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,
+0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,
+"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,b,d,f){c=d*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(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded,
+b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,b,d,f){c=d*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(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid",
+g);mxUtils.extend(n,mxActor);n.prototype.size=.5;n.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*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,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",
+n);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);h.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};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,c,b,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};h.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};h.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};h.prototype.lineTo=function(a,c){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},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(d*d+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var h=b(a-this.lastX)*d/g,b=b(c-this.lastY)*f/g,d=d/e,f=f/e,e=0;e<g;e++){var n=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,h*e+this.lastX-n*f,b*e+this.lastY-
+n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};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 Ha=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)));Ha.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,c,b,d,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/
+2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};
+var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(m,mxRectangleShape);m.prototype.size=.1;m.prototype.isHtmlAllowed=function(){return!1};m.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 c=a.width,b=a.height;
+a=new mxRectangle(a.x,a.y,c,b);var d=c*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,d=Math.max(d,Math.min(c*f,b*f));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};m.prototype.paintForeground=function(a,c,b,d,f){var e=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,e=Math.max(e,Math.min(d*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,b);a.lineTo(c+e,b+f);a.moveTo(c+d-e,b);a.lineTo(c+d-e,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",m);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};w.prototype.paintForeground=function(a,
+c,b,d,f){};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.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,b,d,f){c=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 e=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,f-b),new mxPoint(Math.min(d,e+h),f-b),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,
+f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(A,mxActor);A.prototype.size=.2;A.prototype.fixedSize=20;A.prototype.isRoundable=function(){return!0};A.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",A);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c=d*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-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+
+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,b,d,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,b,
+d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var h=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+e+"Width"],m=this.style["symbol"+e+"Height"],t=
+this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,k=b,y=h==mxConstants.ALIGN_CENTER?y+(d-n)/2:h==mxConstants.ALIGN_RIGHT?y+(d-n-t):y+t,k=na==mxConstants.ALIGN_MIDDLE?k+(f-m)/2:na==mxConstants.ALIGN_BOTTOM?k+(f-m-r):k+r;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,y,k,n,m);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,
+f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};
+mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",
+K);mxUtils.extend(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,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape);
+C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=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,c)};C.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,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,c,b,d,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",
+C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.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))};I.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,g=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(f,Math.max(1.5*
+e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),n=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);n!=mxConstants.NONE&&(a.setFillColor(n),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+g,b);a.lineTo(c+g,b+Math.max(0,
+h-1.5*e));a.lineTo(c+Math.max(0,g-e),b+h);a.lineTo(c,b+h);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=C.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+
+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*
+c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,
+new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==
+mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n,h+e),new mxPoint(g+n,h+m),new mxPoint(g,h+m-e),new mxPoint(g,h)]):(e=n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+e,h),new mxPoint(g+n,h),new mxPoint(g+n-e,h+m),new mxPoint(g,h+m),new mxPoint(g+e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<g||b.x>g+n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",
+mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+n-f,h),new mxPoint(e+n,h+m),new mxPoint(e,h+m),new mxPoint(e+f,h)]):c==mxConstants.DIRECTION_WEST?
+(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+n,h),new mxPoint(e+n-f,h+m),new mxPoint(e+f,h+m),new mxPoint(e,h)]):c==mxConstants.DIRECTION_NORTH?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+n,h),new mxPoint(e+n,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+n,h+f),new mxPoint(e+n,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<e||b.x>e+
+n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?A.prototype.fixedSize:A.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;
+c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n-f,h),new mxPoint(g+n,a),new mxPoint(g+n-f,h+m),new mxPoint(g,h+m),new mxPoint(g+f,a),new mxPoint(g,h)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+f,h),new mxPoint(g+n,h),new mxPoint(g+n-f,a),new mxPoint(g+n,h+m),new mxPoint(g+f,h+m),new mxPoint(g,a),new mxPoint(g+f,h)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,
+Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h+f),new mxPoint(t,h),new mxPoint(g+n,h+f),new mxPoint(g+n,h+m),new mxPoint(t,h+m-f),new mxPoint(g,h+m),new mxPoint(g,h+f)]):(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(t,h+f),new mxPoint(g+n,h),new mxPoint(g+n,h+m-f),new mxPoint(t,h+m),new mxPoint(g,h+m-f),new mxPoint(g,h)]);t=new mxPoint(t,a);d&&(b.x<g||b.x>g+n?t.y=b.y:t.x=b.x);return mxUtils.getPerimeterPoint(h,t,b)};mxStyleRegistry.putValue("stepPerimeter",
+mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,h=a.width,n=a.height,m=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=n*Math.max(0,Math.min(1,f)),g=[new mxPoint(m,g),new mxPoint(e+h,g+f),new mxPoint(e+h,g+n-f),new mxPoint(m,
+g+n),new mxPoint(e,g+n-f),new mxPoint(e,g+f),new mxPoint(m,g)]):(f=h*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+f,g),new mxPoint(e+h-f,g),new mxPoint(e+h,a),new mxPoint(e+h-f,g+n),new mxPoint(e+f,g+n),new mxPoint(e,a),new mxPoint(e+f,g)]);m=new mxPoint(m,a);d&&(b.x<e||b.x>e+h?m.y=b.y:m.x=b.x);return mxUtils.getPerimeterPoint(g,m,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,b,d,
+f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,
+b);a.begin();a.moveTo(d/2,e+g);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-g,e/2);a.quadTo((d-e)/2-g,e+g,d/2,e+g);a.quadTo((d+e)/2+g,e+g,(d+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset=
+2;U.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,
+"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,h=.3*f-c/2,n=.7*f-c/2;e?(a.moveTo(b,h),a.lineTo(g,h),a.lineTo(g,h+c),a.lineTo(b,h+c),a.moveTo(b,n),a.lineTo(g,n),a.lineTo(g,n+c),a.lineTo(b,n+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,n+c),a.lineTo(0,n+c),a.lineTo(0,n),a.lineTo(b,n),a.lineTo(b,h+c),a.lineTo(0,h+c),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",
+F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded=
 function(){return!0};Y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Y.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Y);mxUtils.extend(ba,mxArrowConnector);ba.prototype.defaultWidth=10;ba.prototype.defaultArrowWidth=20;ba.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ba.prototype.getEndArrowWidth=
-function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(b,0),new mxPoint(b,f)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,d,b,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(b*g,f*g));g=Math.max(e,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,d+e);a.lineTo(c+b,d+e);a.end();a.stroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+g,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=
-20;S.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint(c,d),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
-mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(b,0);a.lineTo(b,f);a.end();a.moveTo(0,f/2);a.lineTo(b,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint((b+c)/2,d),new mxPoint((b+c)/2,f),new mxPoint((b-c)/2,f),new mxPoint((b-c)/2,d),new mxPoint(0,d)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath=
-function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
-T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b,
-f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(b,0);a.quadTo(b-2*c,f/2,b,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V,
-mxActor);V.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.quadTo(b/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b/
-2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.8*c),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,d,b,f){c=
-f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-c),new mxPoint(b/2,f),new mxPoint(0,f-c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();
-a.moveTo(c+b/2,d+f);a.lineTo(c+b,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2);a.end();a.stroke();a.begin();a.moveTo(c+b/2,d);a.lineTo(c+b/2,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a,
-c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*b,d+.145*f);a.lineTo(c+.855*b,d+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*b,d+.145*f);a.lineTo(c+.145*b,d+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,d,b,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2);
-a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,d,b,f){a.begin();a.moveTo(c,d);a.lineTo(c+b,d);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,d+f);a.lineTo(c+b,d+f);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,d,b,f){var e=d+f-5;a.begin();a.moveTo(c,d);a.lineTo(c,d+f);
-a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+b,e);a.moveTo(c+b,d);a.lineTo(c+b,d+f);a.moveTo(c+b,e);a.lineTo(c+b-10,e-5);a.moveTo(c+b,e);a.lineTo(c+b-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,d,b,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c,
-d,b,f),a.fill(),a.begin(),a.moveTo(c,d),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+b,d):a.moveTo(c+b,d),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+b,d+f):a.moveTo(c+b,d+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,d+f):a.moveTo(c,d+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,d-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,
-d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+b/2,d),a.lineTo(c+b/2,d+f)):(a.moveTo(c,d+f/2),a.lineTo(c+b,d+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);a.moveTo(0,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",
-ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,b);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;d=c+e;var g=(b-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(b,c);a.lineTo(b,d);a.lineTo(e,d);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,d);a.lineTo(0,d);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size=
-.25;da.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);d=Math.min(b-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.moveTo(0,f/2);a.lineTo(d,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(d,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,d){for(var b=[],f=0;f<c.length;f++)b.push(mxUtils.clone(c[f]));
-var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,b,d]);3<=a.state.strokeWidth&&(b=mxUtils.getValue(this.style,"fillColor",null),null!=b&&(a.setStrokeColor(b),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,d])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=
-this.format.getSelectionState(),d=a.apply(this,arguments);"umlFrame"==c.style.shape&&d.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return d}}();mxMarker.addMarker("dash",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin();a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin();
-a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.moveTo(b.x-t/2+r/2,b.y-r/2-t/2);a.lineTo(b.x-r/2-3*t/2,b.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,d,b,f,e,g,k,l,n){var t=b.clone(),r=wa.apply(this,arguments),y=f*(g+2*l),h=e*(g+2*l);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*l,t.y-e*l);a.lineTo(t.x-2*y+f*l,t.y-2*h+e*l);a.moveTo(t.x-y-h+e*l,t.y-h+y-f*l);a.lineTo(t.x+h-y-e*l,t.y-h-y+f*l);a.stroke()}});
-mxMarker.addMarker("async",function(a,c,d,b,f,e,g,k,l,n){c=f*l*1.118;d=e*l*1.118;f*=g+l;e*=g+l;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);k?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,b,d,f,e,g,k,l,n,t){e*=k+n;g*=k+n;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);l?c.lineTo(r.x-
-e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,b){return ua(a,["width"],c,function(c,d,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(e.x+d*c/4+f*g/2,e.y+f*c/4-d*g/2)},function(c,d,f,e,g,k){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*c)/a.view.scale-b})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=
-a.view.scale,k=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-k.x,l=f.y-k.y,n=Math.sqrt(e*e+l*l),k=b.call(this,n,e/n,l/n,k,f);return new mxPoint(k.x/g-c.x,k.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,k=g.length-1;c=a.view.translate;var l=a.view.scale,n=d?g[0]:g[k],g=d?g[1]:g[k-1],k=g.x-n.x,t=g.y-n.y,r=Math.sqrt(k*k+t*t);b.x=(b.x+c.x)*l;b.y=(b.y+c.y)*l;f.call(this,r,k/r,t/r,n,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=
+20;S.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
+mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath=
+function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
+T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,
+f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V,
+mxActor);V.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/
+2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=
+f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();
+a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a,
+c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);
+a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);
+a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c,
+b,d,f),a.fill(),a.begin(),a.moveTo(c,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,
+b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",
+ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size=
+.25;da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));
+var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=
+this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin();a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin();
+a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.moveTo(d.x-t/2+r/2,d.y-r/2-t/2);a.lineTo(d.x-r/2-3*t/2,d.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,h,n,m){var t=d.clone(),r=wa.apply(this,arguments),y=f*(g+2*n),k=e*(g+2*n);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*n,t.y-e*n);a.lineTo(t.x-2*y+f*n,t.y-2*k+e*n);a.moveTo(t.x-y-k+e*n,t.y-k+y-f*n);a.lineTo(t.x+k-y-e*n,t.y-k-y+f*n);a.stroke()}});
+mxMarker.addMarker("async",function(a,c,b,d,f,e,g,h,n,m){c=f*n*1.118;b=e*n*1.118;f*=g+n;e*=g+n;var t=d.clone();t.x-=c;t.y-=b;d.x+=1*-f-c;d.y+=1*-e-b;return function(){a.begin();a.moveTo(t.x,t.y);h?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,h,n,m,t){e*=h+m;g*=h+m;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);n?c.lineTo(r.x-
+e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,d){return ua(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,h){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*c)/a.view.scale-d})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=
+a.view.scale,h=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-h.x,n=f.y-h.y,m=Math.sqrt(e*e+n*n),h=b.call(this,m,e/m,n/m,h,f);return new mxPoint(h.x/g-c.x,h.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,h=g.length-1;c=a.view.translate;var n=a.view.scale,m=d?g[0]:g[h],g=d?g[1]:g[h-1],h=g.x-m.x,t=g.y-m.y,r=Math.sqrt(h*h+t*t);b.x=(b.x+c.x)*n;b.y=(b.y+c.y)*n;f.call(this,r,h/r,t/r,m,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=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(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Da=function(a,c,b){return function(d){var f=[O(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,
 parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,b.y-c.y)))/a)})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ja(d));return f}},xa=function(a,c,b,d,f){b=null!=b?b:1;return function(e){var g=[O(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,
 "size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(c.width,d*(b?1:c.width))),c.getCenterY())},function(a,c,d){var g=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=e.view.graph.snap(a));this.state.style.size=a},null,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ja(e));return g}},Fa=function(a){return function(c){var b=[O(c,["size"],function(c){var b=Math.max(0,
 Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(c.x+b*c.width*.75,c.y+c.height/4)},function(c,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-c.x)/(.75*c.width)))},null,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ja(c));return b}},va=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c}},ja=function(a,c){return O(a,[mxConstants.STYLE_ARCSIZE],function(b){var d=
 null!=c?c: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+d)}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+d)},function(c,b,d){"1"==mxUtils.getValue(a.style,
 mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},O=function(a,c,b,d,f,e){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<c.length;a++)this.copyStyle(c[a])};g.getPosition=b;g.setPosition=d;g.ignoreGrid=null!=f?f:!0;
-if(e){var k=g.positionChanged;g.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*
-a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&
-(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,
-mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&&
-(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=
-mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,
-e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a,
-["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-
-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
+if(e){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*
+a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.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*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&&
+(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,
+mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&&
+(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=
+mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,
+e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a,
+["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-
+d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
 a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[O(a,[mxConstants.STYLE_STARTSIZE],function(c){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(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width,
 b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,Math.min(c.width,b.x-c.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(ja(a,b/2))}return c},label:va(),ext:va(),rectangle:va(),triangle:va(),rhombus:va(),umlLifeline:function(a){return[O(a,
 ["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[O(a,["width","height"],function(a){var c=Math.max(I.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",I.prototype.width))),b=Math.max(1.5*I.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,
-"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size=
+"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size=
 Math.max(0,Math.min(.5,(c.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},cross:function(a){return[O(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ca.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){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()-c.y)/b*2,Math.max(0,a.getCenterX()-
-c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size)));
+c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=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-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size)));
 return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},dataStorage:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.x+(1-c)*a.width,a.getCenterY())},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-
 c.x)/a.width))})]},callout:function(a){var c=[O(a,["size","position"],function(a){var c=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-c)},function(a,c){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-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),
@@ -2560,22 +2562,22 @@ Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.d
 Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
 (b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))})]},document:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",c.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},tape:function(a){return[O(a,["size"],function(a){var c=Math.max(0,
 Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+
-a.height-c.y)/a.height))})]},step:xa(B.prototype.size,!0,null,!0,B.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(k.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
+a.height-c.y)/a.height))})]},step:xa(A.prototype.size,!0,null,!0,A.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(n.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;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=ya[a];null==a&&null!=this.state.shape&&this.state.shape.isRoundable()&&(a=ya[mxConstants.SHAPE_RECTANGLE]);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=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=
-d&&(d=e.transformControlPoint(a,d));null==k&&null!=c&&(k=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var l=za.x,n=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){a=function(a,c,b){a-=h.x;var d=c-h.y;c=(r*a-t*d)/(l*r-n*t);a=(n*a-l*d)/(n*t-l*r);y?(b&&(h=new mxPoint(h.x+l*c,h.y+n*c),f.push(h)),h=new mxPoint(h.x+t*a,h.y+r*a)):(b&&(h=new mxPoint(h.x+t*a,h.y+r*a),f.push(h)),h=new mxPoint(h.x+
-l*c,h.y+n*c));f.push(h)};var h=k;null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.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,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.apply(this,arguments)};d.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[];
+mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=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=e.transformControlPoint(a,d));null==h&&null!=c&&(h=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var n=za.x,m=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,c,b){a-=k.x;var d=c-k.y;c=(r*a-t*d)/(n*r-m*t);a=(m*a-n*d)/(m*t-n*r);y?(b&&(k=new mxPoint(k.x+n*c,k.y+m*c),f.push(k)),k=new mxPoint(k.x+t*a,k.y+r*a)):(b&&(k=new mxPoint(k.x+t*a,k.y+r*a),f.push(k)),k=new mxPoint(k.x+
+n*c,k.y+m*c));f.push(k)};var k=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,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.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;t.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;
+.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;
 E.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;ra.prototype.constraints=mxEllipse.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=
 mxRectangleShape.prototype.constraints;W.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,
 .3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,
 1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.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)];u.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)];B.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,
+0),!1)];A.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)];R.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),
@@ -2586,76 +2588,77 @@ mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.protot
 new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.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)];C.prototype.constraints=null;V.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)];ga.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)];X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
 .5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
-Actions.prototype.init=function(){function a(a){b.escape();var d=b.getDeletableCells(b.getSelectionCells());if(null!=d&&0<d.length){var c=b.model.getParents(d);b.removeCells(d,a);if(null!=c){a=[];for(d=0;d<c.length;d++)b.model.contains(c[d])&&(b.model.isVertex(c[d])||b.model.isEdge(c[d]))&&a.push(c[d]);b.setSelectionCells(a)}}}var d=this.editorUi,e=d.editor,b=e.graph,h=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(d.getUrl())});
-this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){d.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));d.showDialog((new OpenDialog(this)).container,
-320,220,!0,!0,function(){window.openFile=null})}).isEnabled=h;this.addAction("save",function(){d.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){d.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){d.showDialog((new ExportDialog(d)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(d);d.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
-function(){d.showDialog((new PageSetupDialog(d)).container,320,220,!0,!0)}).isEnabled=h;this.addAction("print...",function(){d.showDialog((new PrintDialog(d)).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(){d.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){d.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 d=mxClipboard.paste(b);if(null!=d){a=!0;for(var c=0;c<d.length&&
-a;c++)a=a&&b.model.isEdge(d[c]);var f=b.view.translate,e=b.view.scale,k=f.x,r=f.y,f=null;if(1==d.length&&a){var l=b.getCellGeometry(d[0]);null!=l&&(f=l.getTerminalPoint(!0))}f=null!=f?f:b.getBoundingBoxFromGeometry(d,a);if(null!=f){var n=Math.round(b.snap(b.popupMenuHandler.triggerX/e-k)),h=Math.round(b.snap(b.popupMenuHandler.triggerY/e-r));b.cellsMoved(d,n-f.x,h-f.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&&
-(a=b.getCellGeometry(a),null!=a&&(d.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(b.isEnabled()&&!b.isSelectionEmpty()&&null!=d.copiedSize){b.getModel().beginUpdate();try{var e=b.getSelectionCells();for(a=0;a<e.length;a++)if(b.getModel().isVertex(e[a])){var c=b.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=d.copiedSize.width,c.height=d.copiedSize.height,b.getModel().setGeometry(e[a],c))}}finally{b.getModel().endUpdate()}}},
-null,null,"Alt+Shit+V");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)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){b.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){b.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){b.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==b.getSelectionCount()?b.setCellStyles("container","1"):b.setSelectionCell(b.groupCells(null,
-0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==b.getSelectionCount()&&0==b.getModel().getChildCount(b.getSelectionCell())?b.setCellStyles("container","0"):b.setSelectionCells(b.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){b.removeCellsFromParent()});this.addAction("edit",function(){b.isEnabled()&&b.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=b.getSelectionCell()||b.getModel().getRoot();
-d.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c="";if(mxUtils.isNode(b.value)){var f=b.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(d,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(b,c)});d.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=b.getLinkForCell(b.getSelectionCell());
-null!=a&&b.openLink(a)});this.addAction("editLink...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c=a.getLinkForCell(b)||"";d.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(b,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&d.showLinkDialog("",mxResources.get("insert"),function(a,d){a=mxUtils.trim(a);if(0<a.length){var c=
-null,f=b.getLinkTitle(a);null!=d&&0<d.length&&(c=d[0].iconUrl,f=d[0].name||d[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=b.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;b.setLinkForCell(c,a);b.cellSizeUpdated(c,!0);b.getModel().beginUpdate();try{c=b.addCell(c),
-b.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{b.getModel().endUpdate()}b.setSelectionCell(c);b.scrollCellToVisible(b.getSelectionCell())}})}).isEnabled=h;this.addAction("link...",mxUtils.bind(this,function(){var a=d.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var b=a.getSelectedElement(),c=a.getParentByName(b,"A",a.cellEditor.textarea),f="";if(null==c&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==c;k++)e[k].textContent==
-b.textContent&&(a.selectNode(e[k]),c=e[k]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();d.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=h;this.addAction("autosize",function(){var a=b.getSelectionCells();if(null!=a){b.getModel().beginUpdate();try{for(var d=0;d<a.length;d++){var c=
-a[d];if(b.getModel().getChildCount(c))b.updateGroupBounds([c],20);else{var f=b.view.getState(c),e=b.getCellGeometry(c);b.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&b.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/b.view.scale,b.getModel().setGeometry(c,e)):b.updateCellSize(c)}}}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=b.getView().getState(b.getSelectionCell());if(null!=a){var e="1";b.stopEditing();
-b.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=b.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);b.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(b.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),b.cellLabelChanged(a.cell,b.sanitizeHtml(c));
-b.setCellStyles("html",e);d.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=b.getView().getState(b.getSelectionCell()),d="wrap";b.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);b.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",function(){var a="0",e=b.getView().getState(b.getSelectionCell());
-null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(d,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&b.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");d.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){b.zoomTo(1);d.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){b.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");
-this.addAction("zoomOut",function(a){b.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){b.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/a.width/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop=
-a.y*b.view.scale-1,b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth-b.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/(2*a.width)/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop=Math.min(a.y,
-(b.container.scrollHeight-b.container.clientHeight)/2),b.container.scrollLeft=Math.min(a.x,(b.container.scrollWidth-b.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();b.zoomTo(Math.floor(20*(b.container.clientWidth-10)/b.pageFormat.width/b.pageScale)/20);if(mxUtils.hasScrollbars(b.container)){var a=b.getPagePadding();b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth-
-b.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*b.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.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*b.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.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(){b.setGridEnabled(!b.isGridEnabled());d.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.isGridEnabled()});m.setEnabled(!1);
-m=this.addAction("guides",function(){b.graphHandler.guidesEnabled=!b.graphHandler.guidesEnabled;d.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){b.tooltipHandler.setEnabled(!b.tooltipHandler.isEnabled())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.tooltipHandler.isEnabled()});m=this.addAction("collapseExpand",function(){var a=
-new ChangePageSetup(d);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!b.foldingEnabled;b.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.foldingEnabled});m.isEnabled=h;m=this.addAction("scrollbars",function(){d.setScrollbars(!d.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){d.setPageVisible(!b.pageVisible)}));m.setToggleAction(!0);m.setSelectedCallback(function(){return b.pageVisible});
-m=this.addAction("connectionArrows",function(){b.connectionArrowsEnabled=!b.connectionArrowsEnabled;d.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){b.setConnectable(!b.connectionHandler.isEnabled());d.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isEnabled()});
-m=this.addAction("copyConnect",function(){b.connectionHandler.setCreateTarget(!b.connectionHandler.isCreateTarget());d.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isCreateTarget()});m.isEnabled=h;m=this.addAction("autosave",function(){d.editor.setAutosave(!d.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.editor.autosave});m.isEnabled=h;m.visible=!1;this.addAction("help",function(){var a=
-"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(d.showDialog((new AboutDialog(d)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));m=mxUtils.bind(this,function(a,d,c,f){return this.addAction(a,function(){if(null!=c&&b.cellEditor.isContentEditing())c();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
-d),(d&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&b.replaceElement(a)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&b.replaceElement(a)}):(d&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,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(){d.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
-this.addAction("strokeColor...",function(){d.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){d.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){d.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});
-this.addAction("vertical",function(){d.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){d.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,null),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});
-this.addAction("dashed",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("dotted",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
-"1 4"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("sharp",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});
-this.addAction("rounded",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!b.isSelectionEmpty()&&b.isEnabled()){b.getModel().beginUpdate();try{var a=b.getSelectionCells(),e=b.view.getState(a[0]),
-c=null!=e?e.style:b.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";b.setCellStyles(mxConstants.STYLE_ROUNDED,f);b.setCellStyles(mxConstants.STYLE_CURVED,null);d.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"),d.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()),e="1";null!=a&&null!=b.getFoldingImage(a)&&(e="0");b.setCellStyles("collapsible",e);d.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",b.getSelectionCells()))});this.addAction("editStyle...",
-mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var d=b.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&d.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+
-"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&d.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var d=e.graph.selectionCellsHandler.getHandler(a);if(d instanceof mxEdgeHandler){for(var c=b.view.translate,f=b.view.scale,g=c.x,c=c.y,a=b.getModel().getParent(a),k=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=k;)g+=k.x,c+=k.y,a=b.getModel().getParent(a),k=
-b.getCellGeometry(a);g=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-c));d.addPointAt(d.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=d.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 d=0;d<a.length;d++){var c=a[d];if(b.getModel().isEdge(c)){var f=
-b.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,b.getModel().setGeometry(c,f))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=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")+"):",e=b.getView().getState(b.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=b.cellEditor.saveSelection();d.showImageDialog(a,c,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 k=b.getFreeInsertPoint(),g=e=[b.insertVertex(b.getDefaultParent(),null,"",k.x,k.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 r=b.view.getState(e[0]),h=null!=r?r.style:b.getCellStyle(e[0]);"image"!=h[mxConstants.STYLE_SHAPE]&&"label"!=h[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image",
-e):0==a.length&&b.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==b.getSelectionCount()&&null!=c&&null!=d){var y=e[0],t=b.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=d,b.getModel().setGeometry(y,t))}}finally{b.getModel().endUpdate()}null!=g&&(b.setSelectionCells(g),b.scrollCellToVisible(g[0]))}}},b.cellEditor.isContentEditing(),!b.cellEditor.isContentEditing())}}).isEnabled=h;this.addAction("insertImage...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&
-(b.clearSelection(),d.actions.get("image").funct())}).isEnabled=h;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.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(){d.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));m=this.addAction("outline",
-mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),d.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,d,e,b,h){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,d,e,b,h))};Actions.prototype.put=function(a,d){return this.actions[a]=d};Actions.prototype.get=function(a){return this.actions[a]};
-function Action(a,d,e,b,h){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(d);this.enabled=null!=e?e:!0;this.iconCls=b;this.shortcut=h;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,d){mxEventSource.call(this);this.ui=a;this.data=d||""};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,d,e,b){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,d,e){};DrawioFile.prototype.saveFile=function(a,d,e,b){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
-DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,d,e){};DrawioFile.prototype.isMovable=function(){return!1};
-DrawioFile.prototype.move=function(a,d,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data};
-DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){var e=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=e&&e.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||
-this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);
-this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)};
-DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))};
-DrawioFile.prototype.autosave=function(a,d,e,b){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<d?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}),
-mxUtils.bind(this,function(a){null!=b&&b(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,d){if(null!=a&&null!=d){var e=a.lastIndexOf("."),b=0<e?a.substring(e):"",e=d.lastIndexOf(".");return b===(0<e?d.substring(e):"")}return a==d};
-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,d,e,b){DrawioFile.call(this,a,d);this.title=e;this.mode=b?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,d,e){this.saveAs(this.title,d,e)};LocalFile.prototype.saveAs=function(a,d,e){this.saveFile(a,!1,d,e)};
-LocalFile.prototype.saveFile=function(a,d,e,b){this.title=a;this.updateFileData();d=this.getData();var h=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,h?"image/png":"text/xml",h);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
-(h?"&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()});h?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(a)}),b,this.ui.getCurrentFile()!=this?this.getData():null):m(d)};LocalFile.prototype.rename=function(a,d,e){this.title=a;this.descriptorChanged();null!=d&&d()};
-LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){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":
+Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var c=d.model.getParents(b);d.removeCells(b,a);if(null!=c){a=[];for(b=0;b<c.length;b++)d.model.contains(c[b])&&(d.model.isVertex(c[b])||d.model.isEdge(c[b]))&&a.push(c[b]);d.setSelectionCells(a)}}}var b=this.editorUi,e=b.editor,d=e.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});
+this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(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(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",
+function(){mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var b=mxClipboard.paste(d);if(null!=b){a=!0;for(var c=0;c<b.length&&
+a;c++)a=a&&d.model.isEdge(b[c]);var f=d.view.translate,e=d.view.scale,n=f.x,r=f.y,f=null;if(1==b.length&&a){var h=d.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(b,a);if(null!=f){var m=Math.round(d.snap(d.popupMenuHandler.triggerX/e-n)),k=Math.round(d.snap(d.popupMenuHandler.triggerY/e-r));d.cellsMoved(b,m-f.x,k-f.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&
+(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{var e=d.getSelectionCells();for(a=0;a<e.length;a++)if(d.getModel().isVertex(e[a])){var c=d.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=b.copiedSize.width,c.height=b.copiedSize.height,d.getModel().setGeometry(e[a],c))}}finally{d.getModel().endUpdate()}}},
+null,null,"Alt+Shit+V");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(){d.setSelectionCells(d.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){d.turnShapes(d.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",
+function(){d.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,
+a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){d.enterGroup()},
+null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){d.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){d.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){d.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container","1"):d.setSelectionCell(d.groupCells(null,
+0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=d.getSelectionCell()||d.getModel().getRoot();
+b.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c="";if(mxUtils.isNode(d.value)){var f=d.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(b,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(d,c)});b.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell());
+null!=a&&d.openLink(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c=a.getLinkForCell(d)||"";b.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(d,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,b){a=mxUtils.trim(a);if(0<a.length){var c=
+null,f=d.getLinkTitle(a);null!=b&&0<b.length&&(c=b[0].iconUrl,f=b[0].name||b[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=d.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c),
+d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}})}).isEnabled=k;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var d=a.getSelectedElement(),c=a.getParentByName(d,"A",a.cellEditor.textarea),f="";if(null==c&&null!=d&&null!=d.getElementsByTagName)for(var e=d.getElementsByTagName("a"),n=0;n<e.length&&null==c;n++)e[n].textContent==
+d.textContent&&(a.selectNode(e[n]),c=e[n]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=k;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=
+a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var f=d.view.getState(c),e=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&d.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,e)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var e="1";d.stopEditing();
+d.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);d.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(d.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),d.cellLabelChanged(a.cell,d.sanitizeHtml(c));
+d.setCellStyles("html",e);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",e=d.getView().getState(d.getSelectionCell());
+null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");
+this.addAction("zoomOut",function(a){d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=
+a.y*d.view.scale-1,d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,
+(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-
+d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.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*d.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(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.isGridEnabled()});l.setEnabled(!1);
+l=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});l=this.addAction("collapseExpand",function(){var a=
+new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.foldingEnabled});l.isEnabled=k;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return d.pageVisible});
+l=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});
+l=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.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);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));l=mxUtils.bind(this,function(a,b,c,f){return this.addAction(a,function(){if(null!=c&&d.cellEditor.isContentEditing())c();else{d.stopEditing(!1);d.getModel().beginUpdate();try{d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
+b),(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&
+d.replaceElement(a)})}finally{d.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(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
+this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
+"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
+this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),e=d.view.getState(a[0]),
+c=null!=e?e.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,
+"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),e="1";null!=a&&null!=d.getFoldingImage(a)&&(e="0");d.setCellStyles("collapsible",e);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",d.getSelectionCells()))});this.addAction("editStyle...",
+mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+
+"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var c=d.view.translate,f=d.view.scale,g=c.x,c=c.y,a=d.getModel().getParent(a),n=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=n;)g+=n.x,c+=n.y,a=d.getModel().getParent(a),n=
+d.getCellGeometry(a);g=Math.round(d.snap(d.popupMenuHandler.triggerX/f-g));f=Math.round(d.snap(d.popupMenuHandler.triggerY/f-c));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=d.getSelectionCells();if(null!=a){a=d.addAllEdges(a);d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var f=
+d.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,d.getModel().setGeometry(c,f))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
+function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=d.getView().getState(d.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=d.cellEditor.saveSelection();b.showImageDialog(a,c,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,c,b);else{var e=d.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;d.getModel().beginUpdate();
+try{if(0==e.length){var n=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",n.x,n.y,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var r=d.view.getState(e[0]),k=null!=r?r.style:d.getCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",
+e):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==d.getSelectionCount()&&null!=c&&null!=b){var y=e[0],t=d.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=b,d.getModel().setGeometry(y,t))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
+(d.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");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,d,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,d,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,d,k){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;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,d){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,d){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
+DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,e){};DrawioFile.prototype.isMovable=function(){return!1};
+DrawioFile.prototype.move=function(a,b,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data};
+DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,e){var b=null!=e?e.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",
+this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",
+this.changeListener)};
+DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null,
+0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))};
+DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()};
+DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):
+null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))};
+DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();var k=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==k&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();
+null!=e&&e(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=k};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("."),d=0<e?a.substring(e):"",e=b.lastIndexOf(".");return d===(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,d){DrawioFile.call(this,a,b);this.title=e;this.mode=d?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,d){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 d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&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)}),d,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=":
@@ -2667,8 +2670,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none
 type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity",
 type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction",
 type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point",
-type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",
-type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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';
+type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",
+dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",
+dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(a,c){if(null!=a){Editor.config=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;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));
 if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=
@@ -2677,17 +2681,17 @@ a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarW
 Editor.guid=function(){return Editor.s4()+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+Editor.s4()+Editor.s4()};Editor.prototype.useForeignObjectForMath=!1;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=
 b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:
 mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.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&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;
-this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=
+this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.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 c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):
 Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(H){}return!1};Editor.prototype.extractGraphModel=function(a,c){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){d.push(b[f]);break}0<d.length&&(b=d[0].getAttribute("data-mxgraph"),
 null!=b?(d=JSON.parse(b),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0]),b=this.graph.decompress(b),0<b.length&&(d=mxUtils.parseXml(b),a=d.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||c||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(d=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=d&&(b=this.graph.decompress(mxUtils.getTextContent(d)),null!=b&&0<b.length&&(a=mxUtils.parseXml(b).documentElement)));null==a||"mxGraphModel"==a.nodeName||c&&"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&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
+"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
 null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(a,c){a=null!=a?a:"https://math.draw.io/current/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};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"],"HTML-CSS":{imageFont:null},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){null!=this.graph.container&&this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");
 if(null!=d&&0<d.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;d[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 c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var h=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){h.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var m=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){m.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
+function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var k=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
 mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var p=Format.prototype.init;Format.prototype.init=function(){p.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||
 "1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var u=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=u.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=
 this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,
@@ -2714,45 +2718,45 @@ stroke:"#008a00",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#1ba1e2",font:"#ffffff"
 font:"#ffffff"},{fill:"#6d8764",stroke:"#6d8764",font:"#ffffff"},{fill:"#647687",stroke:"#647687",font:"#ffffff"},{fill:"#76608a",stroke:"#76608a",font:"#ffffff"},{fill:"#a0522d",stroke:"#a0522d",font:"#ffffff"}],[null,{fill:mxConstants.NONE,stroke:"#36393d"},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[null,{fill:"#f5f5f5",stroke:"#666666",
 gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},
 {fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=
-!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(A){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));
+!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(B){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));
 f.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,e=0;e<b.length;e++)this.findCommonProperties(b[e],c,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==b.length&&0==e);0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var g=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,
 function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");
-c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>
-b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var l=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var h=n.length;h<c;h++)n.push(l);n=n.join(",");t.setCellStyles(b.dependentProps[a],n,t.getSelectionCells());
-f.push(b.dependentProps[a]);e.push(n)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height=
-"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),h.push({name:a,
-values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var l=g,r=0;null!=l.nextSibling;)if(l.nextSibling.getAttribute("data-pName")==a)l=l.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=n(a,"",t,0==r%2,k);d(a,f,t);l.parentNode.insertBefore(r,l.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
-function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var l=0;l<f;l++)k[l]=null!=c[l]?c[l]:null!=d?d:"";h.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function l(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,t,h){var v=n.dispName,w=n.type,y=document.createElement("tr");y.className="gePropRow"+
-(h?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=n.index&&(y.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,n));else if("bool"==w||"boolean"==
-w)x.appendChild(l(c,b,n));else if("enum"==w){var m=n.enumList;for(h=0;h<m.length;h++)if(v=m[h],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<m.length;g++){var k=m[g],l=document.createElement("option");l.value=mxUtils.htmlEntities(k.val);l.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(l)}e.value=
-b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,y,h)):"staticArr"==w?x.appendChild(k(c,b,n.subType,n.subDefVal,n.size,y,h)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value;null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==
-w?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";if("int"==w||"float"==w)g.type="number",g.step="int"==w?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));n.isDeletable&&(h=mxUtils.button("-",mxUtils.bind(r,
-function(a){d(c,"",n,n.index);mxEvent.consume(a)})),h.style.height="16px",h.style.width="25px",h.style["float"]="right",h.className="geColorBtn",x.appendChild(h));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,h=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var m=
-document.createElement("img");m.src=Sidebar.prototype.expandedImage;y.appendChild(m);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){m.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else m.src=Sidebar.prototype.expandedImage,
-b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var B=!1,z=!1,q;for(q in c){var w=c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]||
-c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(n(q,u,w,B,z));B=!B}}for(y=0;y<h.length;y++)for(w=h[y],c=w.parentRow,b=0;b<w.values.length;b++)q=n(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size},
-0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f,e[g]);var k=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,
-a.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k,
-mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width=
-"36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,
-mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a,
-"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");
-null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var k=document.createElement("div");k.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(k));mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(k);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&
+c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],h=b.parentRow.nextSibling;h&&h.getAttribute("data-pName")==a;)g.push(h.getAttribute("data-pValue")),h=h.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>
+b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var n=b.dependentPropsDefVal[a],m=b.dependentPropsVals[a];if(m.length>c)m=m.slice(0,c);else for(var k=m.length;k<c;k++)m.push(n);m=m.join(",");t.setCellStyles(b.dependentProps[a],m,t.getSelectionCells());
+f.push(b.dependentProps[a]);e.push(m)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height=
+"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,h){null!=c&&(c=c.split(","),k.push({name:a,
+values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:h}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var n=g,r=0;null!=n.nextSibling;)if(n.nextSibling.getAttribute("data-pName")==a)n=n.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=m(a,"",t,0==r%2,h);d(a,f,t);n.parentNode.insertBefore(r,n.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
+function h(a,c,b,d,f,e,g){if(0<f){var h=Array(f);c=null!=c?c.split(","):[];for(var n=0;n<f;n++)h[n]=null!=c[n]?c[n]:null!=d?d:"";k.push({name:a,values:h,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function n(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function m(c,b,m,t,k){var v=m.dispName,w=m.type,y=document.createElement("tr");y.className="gePropRow"+
+(k?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=m.index&&(y.setAttribute("data-index",m.index),v=(null!=v?v:"")+"["+m.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,m));else if("bool"==w||"boolean"==
+w)x.appendChild(n(c,b,m));else if("enum"==w){var l=m.enumList;for(k=0;k<l.length;k++)if(v=l[k],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<l.length;g++){var h=l[g],n=document.createElement("option");n.value=mxUtils.htmlEntities(h.val);n.innerHTML=mxUtils.htmlEntities(mxResources.get(h.dispName,null,h.dispName));e.appendChild(n)}e.value=
+b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,m)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,m.subType,m.subDefVal,m.countProperty,y,k)):"staticArr"==w?x.appendChild(h(c,b,m.subType,m.subDefVal,m.size,y,k)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value,a=0==a.length&&"string"!=w?0:a;m.allowAuto&&("auto"==a.trim().toLowerCase()?
+(a="auto",w="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=m.min&&a<m.min?a=m.min:null!=m.max&&a>m.max&&(a=m.max);a=mxUtils.htmlEntities(("int"==w?parseInt(a):a)+"");d(c,a,m)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";"int"!=w&&"float"!=w||m.allowAuto||(g.type="number",g.step="int"==w?"1":"any",null!=m.min&&(g.min=parseFloat(m.min)),null!=m.max&&(g.max=parseFloat(m.max)));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress",
+function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));m.isDeletable&&(k=mxUtils.button("-",mxUtils.bind(r,function(a){d(c,"",m,m.index);mxEvent.consume(a)})),k.style.height="16px",k.style.width="25px",k.style["float"]="right",k.className="geColorBtn",x.appendChild(k));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,k=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";
+v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var l=document.createElement("img");l.src=Sidebar.prototype.expandedImage;y.appendChild(l);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-
+1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else l.src=Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var A=!1,z=!1,q;for(q in c){var w=
+c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]||c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(m(q,u,w,A,z));A=!A}}for(y=0;y<k.length;y++)for(w=k[y],c=w.parentRow,b=0;b<w.values.length;b++)q=
+m(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size},0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f,
+e[g]);var h=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,
+a.font||mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR,
+null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?
+c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+
+g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);
+var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
+mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var h=document.createElement("div");h.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(h));mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(h);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&
 (b=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,
 function(a){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):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==b?c.style.width="202px":
 (b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));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 k=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}k.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint;
+"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}n.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint;
 this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):b.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var c=this.graph.view.getState(a),c=null!=c?c.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.setChildGeometry=function(a,c){c.height=Math.max(c.height,20);if(1<c.height/20){var b=c.height%20;c.height+=10<b?20-b:-b}this.graph.getModel().setGeometry(a,
-c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var l=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=l.apply(this,arguments);if(null==
-c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var n=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){n.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
+c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var h=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=h.apply(this,arguments);if(null==
+c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var m=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){m.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
 null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
 this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var w=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){w.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++)if(null!=a.actions[c].open)if(this.isCustomLink(a.actions[c].open)){if(!this.customLinkClicked(a.actions[c].open))return}else this.openLink(a.actions[c].open);
 this.model.beginUpdate();try{for(c=0;c<a.actions.length;c++)this.handleLinkAction(a.actions[c])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(a){var c=[];null!=a.select&&this.isEnabled()&&(c=this.getCellsForAction(a.select),this.setSelectionCells(c));null!=a.highlight&&(c=this.getCellsForAction(a.highlight),this.highlightCells(c,a.highlight.color,a.highlight.duration,a.highlight.opacity));null!=a.toggle&&this.toggleCells(this.getCellsForAction(a.toggle));null!=a.show&&
 this.setCellsVisible(this.getCellsForAction(a.show),!0);null!=a.hide&&this.setCellsVisible(this.getCellsForAction(a.hide),!1);null!=a.scroll&&(c=this.getCellsForAction(a.scroll));0<c.length&&this.scrollCellToVisible(c[0])};Graph.prototype.getCellsForAction=function(a){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var d=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!=
-d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),k=0;k<a.length&&g;k++)var l=mxUtils.trim(a[k]).toLowerCase(),
-g=g&&(0==l.length||0<=mxUtils.indexOf(e,l));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f<
+d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),h=0;h<a.length&&g;h++)var n=mxUtils.trim(a[h]).toLowerCase(),
+g=g&&(0==n.length||0<=mxUtils.indexOf(e,n));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f<
 a.length;f++)this.highlightCell(a[f],c,b,d)};Graph.prototype.highlightCell=function(a,c,b,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),e=new mxCellHighlight(this,c,f,!1);null!=d&&(e.opacity=d);e.highlight(a);window.setTimeout(function(){null!=e.shape&&(mxUtils.setPrefixedStyle(e.shape.node.style,"transition","all 1200ms ease-in-out"),e.shape.node.style.opacity=0);window.setTimeout(function(){e.destroy()},
 1200)},b)}};Graph.prototype.addSvgShadow=function(a,c,b){b=null!=b?b:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");e.setAttribute("in","SourceAlpha");e.setAttribute("stdDeviation",this.svgShadowBlur);e.setAttribute("result","blur");f.appendChild(e);e=null!=d.createElementNS?
 d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");e.setAttribute("in","blur");e.setAttribute("dx",this.svgShadowSize);e.setAttribute("dy",this.svgShadowSize);e.setAttribute("result","offsetBlur");f.appendChild(e);e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");e.setAttribute("flood-color",this.svgShadowColor);e.setAttribute("flood-opacity",this.svgShadowOpacity);e.setAttribute("result","offsetColor");f.appendChild(e);
@@ -2766,244 +2770,245 @@ mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mx
 [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.gcp2=[SHAPES_PATH+"/mxGCP2.js",
 STENCIL_PATH+"/gcp2.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.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.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 v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1,
-Math.min(k,Math.max(parseInt(t.value),parseInt(v.value))));v.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,k=0,l=ga.get(),n=1/c.pageScale,r=y.checked;if(r)var n=parseInt(Q.value),h=parseInt(V.value),n=Math.min(l.height*h/(e.height/c.view.scale),l.width*n/(e.width/c.view.scale));else n=parseInt(p.value)/(100*c.pageScale),isNaN(n)&&(d=1/c.pageScale,p.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*
-d);l.height=Math.ceil(l.height*d);n*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*l.width,k-=e.y*l.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,n,l,0,g,k,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var w=b.writeHead;b.writeHead=function(c){w.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,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var k=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}b.open(null,null,f,!0)}else{l=c.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=r;b.appendGraph(c,n,g,k,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,
-W.value="100 %");var d=.75*d,e=v.value,g=t.value,k=!r.checked,n=null;k&&(k=e==l&&g==l);if(!k&&null!=a.pages&&a.pages.length){var h=0,k=a.pages.length-1;r.checked||(h=parseInt(e)-1,k=parseInt(g)-1);for(var w=h;w<=k;w++){var m=a.pages[w],e=m==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,h=!1,x=null,B=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(g=m.viewState.pageVisible,h=m.viewState.mathEnabled,x=m.viewState.background,
-B=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),x=m.mapping.diagramMap.get("background"),B=m.mapping.diagramMap.get("backgroundImage"),B=null!=B&&0<B.length?JSON.parse(B):null);e.background=x;e.backgroundImage=null!=B?new mxImage(B.src,B.width,B.height):null;e.pageVisible=g;e.mathEnabled=h;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?w+1:q.apply(this,arguments)};document.body.appendChild(e.container);
-a.updatePageRoot(m);e.model.setRoot(m.root)}n=b(e,n,w!=k);e!=f&&e.container.parentNode.removeChild(e.container)}}else n=b(f);n.mathEnabled&&(k=n.wnd.document,k.writeln('<script type="text/x-mathjax-config">'),k.writeln("MathJax.Hub.Config({"),k.writeln("showMathMenu: false,"),k.writeln('messageStyle: "none",'),k.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),k.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),k.writeln('"HTML-CSS": {'),
-k.writeln("imageFont: null"),k.writeln("},"),k.writeln("TeX: {"),k.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),k.writeln("},"),k.writeln("tex2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("},"),k.writeln("asciimath2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("}"),k.writeln("});"),c&&(k.writeln("MathJax.Hub.Queue(function () {"),k.writeln("window.print();"),k.writeln("});")),k.writeln("\x3c/script>"),k.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>'));
-n.closeDocument();!n.mathEnabled&&c&&PrintDialog.printPreview(n)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,l=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;";
-r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");n.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));n.appendChild(g);mxUtils.br(n);var h=r.cloneNode(!0);r.setAttribute("checked","checked");h.setAttribute("value","range");n.appendChild(h);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");n.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";
-v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";n.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));n.appendChild(g);var t=v.cloneNode(!0);n.appendChild(t);mxEvent.addListener(v,"focus",function(){h.checked=!0});mxEvent.addListener(t,"focus",function(){h.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==
-a.pages[g]){l=g+1;v.value=l;t.value=l;break}v.setAttribute("max",k);t.setAttribute("max",k);1<k&&e.appendChild(n);var w=document.createElement("div");w.style.marginBottom="10px";var m=document.createElement("input");m.style.marginRight="8px";m.setAttribute("value","adjust");m.setAttribute("type","radio");m.setAttribute("name","printZoom");w.appendChild(m);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));w.appendChild(g);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(){m.checked=!0});e.appendChild(w);var n=n.cloneNode(!1),y=m.cloneNode(!0);y.setAttribute("value","fit");m.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);n.appendChild(g);w=document.createElement("table");w.style.display="inline-block";var B=document.createElement("tbody"),
+[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 v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,h,n,m){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){w.value=Math.max(1,
+Math.min(h,Math.max(parseInt(w.value),parseInt(v.value))));v.value=Math.max(1,Math.min(h,Math.min(parseInt(w.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,h=0,n=ga.get(),m=1/c.pageScale,r=y.checked;if(r)var m=parseInt(Q.value),k=parseInt(V.value),m=Math.min(n.height*k/(e.height/c.view.scale),n.width*m/(e.width/c.view.scale));else m=parseInt(p.value)/(100*c.pageScale),isNaN(m)&&(d=1/c.pageScale,p.value="100 %");n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*
+d);n.height=Math.ceil(n.height*d);m*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*n.width,h-=e.y*n.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,m,n,0,g,h,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var t=b.writeHead;b.writeHead=function(c){t.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,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var h=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:h.className="geDisableMathJax";return h}}b.open(null,null,f,!0)}else{n=c.background;if(null==n||""==n||n==mxConstants.NONE)n="#ffffff";b.backgroundColor=n;b.autoOrigin=r;b.appendGraph(c,m,g,h,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,
+W.value="100 %");var d=.75*d,e=v.value,g=w.value,h=!r.checked,m=null;h&&(h=e==n&&g==n);if(!h&&null!=a.pages&&a.pages.length){var k=0,h=a.pages.length-1;r.checked||(k=parseInt(e)-1,h=parseInt(g)-1);for(var t=k;t<=h;t++){var l=a.pages[t],e=l==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,k=!1,x=null,A=null;null==l.viewState&&null==l.mapping&&null==l.root&&a.updatePageRoot(l);null!=l.viewState?(g=l.viewState.pageVisible,k=l.viewState.mathEnabled,x=l.viewState.background,
+A=l.viewState.backgroundImage):null!=l.mapping&&null!=l.mapping.diagramMap&&(k="0"!=l.mapping.diagramMap.get("mathEnabled"),x=l.mapping.diagramMap.get("background"),A=l.mapping.diagramMap.get("backgroundImage"),A=null!=A&&0<A.length?JSON.parse(A):null);e.background=x;e.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;e.pageVisible=g;e.mathEnabled=k;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?t+1:q.apply(this,arguments)};document.body.appendChild(e.container);
+a.updatePageRoot(l);e.model.setRoot(l.root)}m=b(e,m,t!=h);e!=f&&e.container.parentNode.removeChild(e.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("showMathMenu: false,"),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('"HTML-CSS": {'),
+h.writeln("imageFont: null"),h.writeln("},"),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("});"),c&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>'));
+m.closeDocument();!m.mathEnabled&&c&&PrintDialog.printPreview(m)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var h=1,n=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;";
+r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");m.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));m.appendChild(g);mxUtils.br(m);var k=r.cloneNode(!0);r.setAttribute("checked","checked");k.setAttribute("value","range");m.appendChild(k);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");m.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";
+v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";m.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));m.appendChild(g);var w=v.cloneNode(!0);m.appendChild(w);mxEvent.addListener(v,"focus",function(){k.checked=!0});mxEvent.addListener(w,"focus",function(){k.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(w,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==
+a.pages[g]){n=g+1;v.value=n;w.value=n;break}v.setAttribute("max",h);w.setAttribute("max",h);1<h&&e.appendChild(m);var t=document.createElement("div");t.style.marginBottom="10px";var l=document.createElement("input");l.style.marginRight="8px";l.setAttribute("value","adjust");l.setAttribute("type","radio");l.setAttribute("name","printZoom");t.appendChild(l);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));t.appendChild(g);var p=document.createElement("input");p.style.cssText=
+"margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";t.appendChild(p);mxEvent.addListener(p,"focus",function(){l.checked=!0});e.appendChild(t);var m=m.cloneNode(!1),y=l.cloneNode(!0);y.setAttribute("value","fit");l.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);m.appendChild(g);t=document.createElement("table");t.style.display="inline-block";var A=document.createElement("tbody"),
 q=document.createElement("tr"),u=q.cloneNode(!0),E=document.createElement("td"),S=E.cloneNode(!0),M=E.cloneNode(!0),N=E.cloneNode(!0),T=E.cloneNode(!0),D=E.cloneNode(!0);E.style.textAlign="right";N.style.textAlign="right";mxUtils.write(E,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";S.appendChild(Q);g=document.createElement("span");mxUtils.write(g,
-mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);B.appendChild(q);B.appendChild(u);w.appendChild(B);
-n.appendChild(w);e.appendChild(n);n=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));n.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));n.appendChild(g);
-var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";n.appendChild(W);e.appendChild(n);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&g.appendChild(n);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
-w.className="geBtn",g.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),w.className="geBtn",g.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});w.className="geBtn gePrimaryBtn";g.appendChild(w);a.editor.cancelFirst||g.appendChild(n);e.appendChild(g);this.container=e};var B=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)):(B.apply(this,arguments),null!=this.mathEnabled&&
+mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);A.appendChild(q);A.appendChild(u);t.appendChild(A);
+m.appendChild(t);e.appendChild(m);m=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));m.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));m.appendChild(g);
+var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";m.appendChild(W);e.appendChild(m);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&g.appendChild(m);a.isOffline()||(t=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
+t.className="geBtn",g.appendChild(t));PrintDialog.previewEnabled&&(t=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),t.className="geBtn",g.appendChild(t));t=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});t.className="geBtn gePrimaryBtn";g.appendChild(t);a.editor.cancelFirst||g.appendChild(m);e.appendChild(g);this.container=e};var A=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)):(A.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))}})();
-var ErrorDialog=function(a,d,e,b,h,m,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=d){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="16px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";mxUtils.write(k,d);g.appendChild(k)}d=document.createElement("div");d.style.padding="6px";d.innerHTML=e;g.appendChild(d);e=document.createElement("div");
-e.style.marginTop="16px";e.style.textAlign="center";null!=m&&(d=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();m()}),d.className="geBtn",e.appendChild(d),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(b,function(){u&&a.hideDialog();null!=h&&h()});r.className="geBtn";e.appendChild(r);null!=p&&(b=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),b.className="geBtn gePrimaryBtn",
-e.appendChild(b));this.init=function(){r.focus()};g.appendChild(e);this.container=g};
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,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="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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";
+var ErrorDialog=function(a,b,e,d,k,l,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=b){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="16px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";mxUtils.write(n,b);g.appendChild(n)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=e;g.appendChild(b);e=document.createElement("div");
+e.style.marginTop="16px";e.style.textAlign="center";null!=l&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();l()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(d,function(){u&&a.hideDialog();null!=k&&k()});r.className="geBtn";e.appendChild(r);null!=p&&(d=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn",
+e.appendChild(d));this.init=function(){r.focus()};g.appendChild(e);this.container=g};
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(r){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
-null!=a&&6<a.length}catch(l){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}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(r){}})();
+null!=a&&6<a.length}catch(h){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}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(r){}})();
 EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
 this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.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,d){d=null!=d?d:24;var c=new Spinner({lines:12,
 length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=c.spin;c.spin=function(d,e){var g=!1;this.active||(f.call(this,d),this.active=!0,null!=e&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight=
 "10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),g.innerHTML=e+"...",d.appendChild(g),c.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,
 b+70-g.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,e)}));this.stop();return a}),g=!0);return g};var e=c.stop;c.stop=function(){e.call(this);this.active=!1;null!=c.status&&(c.status.parentNode.removeChild(c.status),c.status=null)};c.pause=function(){return function(){}};return c};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+
-(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("&lt;mxfile ");if(0<=d){var e=c.lastIndexOf("&lt;/mxfile&gt;");e>d&&(b=c.substring(d,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),l=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=
-l?mxUtils.getXml(l):""}catch(n){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();
-try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var l=this.updatePageRoot(new DiagramPage(d[e]));null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,l,0==e?l:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),
-this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,l,n,h,v,m){b=null!=
-b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var k=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(k);if(b.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(k,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}m?(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!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!l&&!r&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(l||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
-App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,h,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.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&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),e.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,l,n,h,v){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=l?l:!1);v=null!=v?v:this.getCurrentFile();l=this.editor.graph;
-if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){l=this.createTemporaryGraph(l.getStylesheet());var c=l.getGlobalVariable,f=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(l.container);l.model.setRoot(f.root)}a=this.createFileData(n,l,v,window.location.href,a,b,d,e,r,h);l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);return a};
-EditorUi.prototype.getHtml=function(a,b,d,e,r,l){l=null!=l?l:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=l?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;l=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",l);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!=r&&(r=r.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==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(n){}return!1};
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("&lt;mxfile ");if(0<=d){var e=c.lastIndexOf("&lt;/mxfile&gt;");e>d&&(b=c.substring(d,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=
+h?mxUtils.getXml(h):""}catch(m){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();
+try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(d[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));c.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])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,h,m,k,v,l){b=null!=
+b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var n=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(n);if(b.decompress(g)!=n)return n;n=a.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(n)}l?(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!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(m||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(h||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=
+App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,k,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var f=
+this.pages[d].mapping;if(this.currentPage!=this.pages[d]&&null!=f&&f.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel);f.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[d].node,this.editor.graph.compressNode(e));f.needsUpdate=!1}c.appendChild(this.pages[d].node)}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,h,m,k,v){r=null!=r?r:!0;m=null!=m?m:this.getXmlFileData(r,null!=h?h:!1);v=null!=v?v:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&
+this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());var c=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(m,h,v,window.location.href,a,b,d,e,r,k);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=
+function(a,b,d,e,r,h){h=null!=h?h:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=h?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(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!=r&&(r=r.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==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
 ">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>':
 '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" 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,d,e,r){null!=r&&(r=r.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==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\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==r?'<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="'+r+'" 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 c=null!=a&&0<a.length?
 mxUtils.parseXml(a).documentElement:null;a=null!=c?this.editor.extractGraphModel(c,!0):null;null!=a&&(c=a);if(null!=c&&"mxfile"==c.nodeName&&(a=c.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=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(a){var c=this.getCurrentFile(),c=null!=c&&null!=
-c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,l,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r),
+c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,h,m){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r),
 f=c+"."+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,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=
-this.editor.graph.pageVisible;null!=l&&(this.editor.graph.pageVisible=l);var f=this.createDownloadRequest(c,a,e,b,n);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var k=null,h=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var m=this.editor.graph.background;if(n||m==
-mxConstants.NONE)m=null;var p=this.editor.graph.getSvg(m,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,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 f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();h(a)}),e)}}catch(G){this.handleError(G)}};
+this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(c,a,e,b,m);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var n=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(n)}))});if("svg"==a){var l=this.editor.graph.background;if(m||l==
+mxConstants.NONE)l=null;var p=this.editor.graph.getSvg(l,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,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=c+".svg",n=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(G){this.handleError(G)}};
 EditorUi.prototype.createDownloadRequest=function(a,b,d,e,r){var c=this.editor.graph.getGraphBounds();d=this.getFileData(!0,null,null,null,d,"xmlpng"!=b);var f="";if(c.width*c.height>MAX_AREA||d.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 g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE);
 return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+c+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
-null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
-mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),l()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&&
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,h=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),m()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();h()}));m();h()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&&
 !this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){editorUi.alert(a.tooltip)});return c}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,
-null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var l=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var h=a.getAttribute("value");if(null!=h){var v=mxUtils.parseXml(h).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(n,v);else for(var m=v.attributes,p=0;p<m.length;p++)d.setAttributeForCell(n,m[p].nodeName,0<m[p].nodeValue.length?m[p].nodeValue:null)}}catch(x){null!=
-window.console&&console.log("Error in value for "+n.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(n,t)}catch(x){null!=window.console&&console.log("Error in style for "+n.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(n);null!=u&&d.addCellOverlay(n,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),
-A=d.getCellGeometry(n);if(null!=A){A=A.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?A.x+=J:"dy"==key?A.y+=J:"dw"==key?A.width+=J:"dh"==key?A.height+=J:A[key]=parseFloat(G[key])}d.model.setGeometry(n,A)}}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&
-(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(l=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=l&&this.chromelessResize&&this.chromelessResize(!0,l)}return b};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 d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML=
-"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();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.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!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(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);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!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(l){}this.handleError(r,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):d()}))}else d();return c};
-EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,l,n){};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 c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);
-return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;
-if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};
-};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.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)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+c,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 c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var h=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);
-var v=h.parentNode.previousSibling;d=v.getAttribute("title");null!=d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title",
-mxResources.get("close"));p.setAttribute("valign","absmiddle");p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)m.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q=
-this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),h,b,a,a.getMode());mxEvent.consume(c)}),A=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",m.insertBefore(u,m.firstChild),v.style.paddingRight=18*m.childNodes.length+
-"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!=u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*m.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),m.insertBefore(t,m.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()||
-(v.style.paddingRight=18*m.childNodes.length+"px",t.parentNode.removeChild(t),t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=q.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}h.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);A(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=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 c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x;
-b.y-=q.view.translate.y;J(c,b)}mxEvent.consume(a)});h.style.border="3px solid transparent";mxEvent.addGestureListeners(h,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)":h.style.border="3px dotted rgb(254, 137, 12)",h.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&&(h.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),h.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(h,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&
-null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="visible",h.style.border="3px solid transparent",h.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(h,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":h.style.border="3px dotted rgb(254, 137, 12)";
-a.dataTransfer.dropEffect="copy";h.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"drop",mxUtils.bind(this,function(a){h.style.border="3px solid transparent";h.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,d,g,k,l,n,r,t,v){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,l,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,l,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 m=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(g.documentElement));e(k,h);b=b.concat(k);A(a);
-this.spinner.stop();m=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var l=g.documentElement.getElementsByTagName("diagram"),g=0;g<l.length;g++){var k=mxUtils.getTextContent(l[g]),n=this.stringToCells(this.editor.graph.decompress(k)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}m=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}m||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,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(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(h.style.border="3px solid transparent",h.style.cursor="");a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));m.insertBefore(p,m.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(h,
-"dblclick",function(a){mxEvent.getSource(a)==h&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));m.insertBefore(d,m.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,
-mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),m.insertBefore(d,m.firstChild))}v.appendChild(m);v.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+
+null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var m=e.getCell(a.getAttribute("id"));if(null!=m){try{var k=a.getAttribute("value");if(null!=k){var v=mxUtils.parseXml(k).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(m,v);else for(var l=v.attributes,p=0;p<l.length;p++)d.setAttributeForCell(m,l[p].nodeName,0<l[p].nodeValue.length?l[p].nodeValue:null)}}catch(x){null!=
+window.console&&console.log("Error in value for "+m.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(m,t)}catch(x){null!=window.console&&console.log("Error in style for "+m.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(m);null!=u&&d.addCellOverlay(m,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),
+B=d.getCellGeometry(m);if(null!=B){B=B.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?B.x+=J:"dy"==key?B.y+=J:"dw"==key?B.width+=J:"dh"==key?B.height+=J:B[key]=parseFloat(G[key])}d.model.setGeometry(m,B)}}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&
+(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,
+d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),m=e.getMonth()+1,k=e.getDate(),v=e.getHours(),l=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(f+"-"+m+"-"+k+"-"+v+"-"+l+"-"+e));return c=mxResources.get("copyOf",[c])+d};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 d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();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.isChromelessView()||
+this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!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(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);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!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):
+"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,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):d()}))}else d();return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c=
+null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,h,m){};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 c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=
+LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=
+null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=
+function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.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)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+
+"image="+c,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 c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var v=k.parentNode.previousSibling;d=v.getAttribute("title");null!=
+d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(l.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title",mxResources.get("close"));p.setAttribute("valign","absmiddle");
+p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)l.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q=this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
+k,b,a,a.getMode());mxEvent.consume(c)}),B=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",l.insertBefore(u,l.firstChild),v.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!=
+u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*l.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),l.insertBefore(t,l.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()||(v.style.paddingRight=18*l.childNodes.length+"px",t.parentNode.removeChild(t),
+t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*l.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,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(-c.x,-c.y)}k.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);
+B(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=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 c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x;b.y-=q.view.translate.y;J(c,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,K(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="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(c,d,g,h,m,n,r,t,v){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,m,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,m,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 l=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);B(a);this.spinner.stop();
+l=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var m=g.documentElement.getElementsByTagName("diagram"),g=0;g<m.length;g++){var h=mxUtils.getTextContent(m[g]),n=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}l=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&
+null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,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(c,d)}}));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()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));l.insertBefore(p,l.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(k,
+"dblclick",function(a){mxEvent.getSource(a)==k&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));l.insertBefore(d,l.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,
+mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),l.insertBefore(d,l.firstChild))}v.appendChild(l);v.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+
 "image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(this.editor.graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};"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 c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,h){a=new ImageDialog(this,a,b,d,e,h);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 c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,h){a=new LibraryDialog(this,a,b,d,e,h);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");
+"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,k){a=new ImageDialog(this,a,b,d,e,k);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 c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,k){a=new LibraryDialog(this,a,b,d,e,k);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,d){var c=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(){c();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 h=window.location.hash;null!=h&&"#G"==h.substring(0,2)&&(h=h.substring(2),a+=' <a href="https://drive.google.com/open?id='+h+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,h,l,n,m,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,h,l,n,t,m,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=
-function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,h){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,h)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};
+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 null!=f.message?a=mxUtils.htmlEntities(f.message):
+null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,k,h,m,l,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,k,h,m,t,l,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=
+function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,k){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,k)).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,d){var c=a.toDataURL("image/"+d);if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/"+d))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,d){var c="jpeg"==d?"jpg":d,f=this.getBaseFilename()+"."+c;a=this.createImageDataUri(a,b,d);this.saveData(f,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};
-EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,h){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height=
+EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,k){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)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&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof c.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],10):!1)?!1:f;if(f||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));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(v){}}else this.createEchoRequest(a,b,d,e,h).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,h,l){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=h?"&format="+h:"")+(null!=l?"&base64="+l:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=
-b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var h=1024*n,v=Math.min(h+1024,d),m=Array(v-h),p=0;h<v;++p,++h)m[p]=c[h].charCodeAt(0);e[n]=new Uint8Array(m)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,h,l,n){l=null!=l?l:!1;n=null!=n?n:"vsdx"!=h&&(!mxClient.IS_IOS||!navigator.standalone);h=this.getServiceCount(l);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)||
+try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(v){}}else this.createEchoRequest(a,b,d,e,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,k,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=k?"&format="+k:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=
+b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var k=1024*m,v=Math.min(k+1024,d),l=Array(v-k),p=0;k<v;++p,++k)l[p]=c[k].charCodeAt(0);e[m]=new Uint8Array(l)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,k,h,m){h=null!=h?h:!1;m=null!=m?m:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)||
 "image/svg"==d.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,d,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(t){this.handleError(t)}}))}catch(y){this.handleError(y)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
-mxResources.get("download"),!1,l,n,null,1<h,4<h&&(!l||6>h)?3:4,a,d,e);this.showDialog(b.container,420,h==(mxClient.IS_IOS?0:1)?160:4<h?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){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+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
-'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var d=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),
+mxResources.get("download"),!1,h,m,null,1<k,4<k&&(!h||6>k)?3:4,a,d,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){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+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
+'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&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=
 "4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
 this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
-mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,
-d,e,h){this.isLocalFileSave()?this.saveLocalFile(d,a,e,h,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,h,b,c)}),d,h,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,h,l,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==
-App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){l=null!=l?l:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,l,!0,c,d)}catch(z){this.handleError(z)}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,l,!0,c,d)}catch(z){this.handleError(z)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
-function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,4<c?3:4,e,l,h);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,h,l){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,
-b,d,e,h,l,n,m,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,n,m,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",k=mxUtils.bind(this,function(a){this.spinner.stop();h&&a.setAttribute("content",this.getFileData(!0,
+mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));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,
+d,e,k){this.isLocalFileSave()?this.saveLocalFile(d,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,k,b,c)}),d,k,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,k,h,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==
+App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,c,d)}catch(z){this.handleError(z)}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,c,d)}catch(z){this.handleError(z)}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,m,null,1<c,4<c?3:4,e,h,k);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,
+b,d,e,k,h,m,l,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,m,l,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,
 null,null,null,d,v));if(null!=this.editor.fontCss){var c=a.ownerDocument,c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(c)}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(){l?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,k,this.thumbImageCache)):k(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,h,l){l=null!=l?l:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",
-"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");l&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),h||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft=
+"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,n,this.thumbImageCache)):n(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,k,h){h=null!=h?h:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",
+"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");h&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),k||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft=
 "24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+
 "...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));
-mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=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.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}
 mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value",
-"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();n.style.padding=mxClient.IS_FF?
-"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,h,l,n,m){var c=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!=h&&0<h.length&&f.push("edit="+encodeURIComponent(h)),l&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=n?d="#U"+encodeURIComponent(n):(c=this.getCurrentFile(),m||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
-(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.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("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,h,l,n,m,v,p,q){this.getBasenames();var c={};""!=h&&h!=mxConstants.NONE&&(c.highlight=h);"auto"!==e&&(c.target=e);
-v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(l?"max-width:100%;":
+"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF?
+"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,k,h,m,l){var c=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!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=m?d="#U"+encodeURIComponent(m):(c=this.getCurrentFile(),l||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
+(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.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("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,k,h,m,l,v,p,q){this.getBasenames();var c={};""!=k&&k!=mxConstants.NONE&&(c.highlight=k);"auto"!==e&&(c.target=e);
+v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];m&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);l&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(h?"max-width:100%;":
 "")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></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,d,e){var c=document.createElement("div");
 c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name",
-"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var h=document.createElement("span");mxUtils.write(h,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(h);mxUtils.br(g);g.appendChild(k);h=document.createElement("span");mxUtils.write(h,mxResources.get("publicDiagramUrl"));g.appendChild(h);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(h=document.createElement("a"),h.style.paddingLeft="12px",h.style.color="gray",h.setAttribute("href",
-"javascript:void(0);"),mxUtils.write(h,mxResources.get("share")),g.appendChild(h),mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),A=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"):
-x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,A.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,h,l){var c=document.createElement("div");c.style.whiteSpace=
-"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://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",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
-var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));k.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";k.appendChild(r);c.appendChild(k);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));
-k.appendChild(r);mxEvent.addListener(r,"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,p=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"),
-m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=e+"px",c.appendChild(p),mxUtils.br(c);var q=this.addLinkSection(c,l);d=null!=this.pages&&1<this.pages.length;var u=null;
-if(null==g||g.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var A=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,A),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(A,"change",function(){A.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled",
-"disabled"));K.checked&&A.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){h(q.getTarget(),q.getColor(),null==u?!0:u.checked,A.checked,J.getLink(),x.checked,null!=m?m.value:null,null!=p?p.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,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 g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),
-!0),f=this.editor.graph,h=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=h&&(h.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=h?h.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,h,l,n,m){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=
-this.editor.graph,g="jpeg"==m?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":");
-var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=m),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight=
-"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");l&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,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&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=m),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=m);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display=
-"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});n&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");
-mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==m&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;h(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked,
-!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,h){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),A=this.addCheckbox(c,mxResources.get("layers"),u,!u);A.style.marginLeft=q.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?
-(u&&A.removeAttribute("disabled"),q.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,r.checked,m.checked,t.checked,p.getLink(),A.checked)}),null,mxResources.get("embed"),h);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
-function(a,b,d,e,h,l,n,m){function c(c){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"+(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");
-a&&(g+="max-width:100%;");var k="";d&&(k=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+k+(""!=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");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({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 g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var k=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));k.send(mxUtils.bind(this,function(){200<=k.getStatus()&&299>=k.getStatus()?c("data:image/png;base64,"+k.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
-b,d,e,h,l,n){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",m="";e&&(r="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"+
-(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");a&&(m+="max-width:100%;");this.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=m?' style="'+m+'"':"")+r+"/>")}))}else m="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}}})(this);"),m+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),m+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=m&&c.setAttribute("style",m),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+
+"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var l=this.getCurrentFile();null==d&&null!=l&&l.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")),g.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),B=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"):
+x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,B.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,k,h){var c=document.createElement("div");c.style.whiteSpace=
+"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://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",n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));n.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";n.appendChild(r);c.appendChild(n);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));
+n.appendChild(r);mxEvent.addListener(r,"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 t=null,l=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),
+t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,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",c.appendChild(l),mxUtils.br(c);var p=this.addLinkSection(c,h);d=null!=this.pages&&1<this.pages.length;var q=null;
+if(null==g||g.constructor!=window.DriveFile||b)q=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var u=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,u),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled",
+"disabled"));K.checked&&u.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==q?!0:q.checked,u.checked,J.getLink(),x.checked,null!=t?t.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():
+document.execCommand("selectAll",!1,null)):p.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 g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),
+!0),f=this.editor.graph,n=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,k,h,m,l){m=null!=m?m:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=
+this.editor.graph,g="jpeg"==l?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(n);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":");
+var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight=
+"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");h&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,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&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=l),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=l);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display=
+"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});m&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");
+mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==l&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;k(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked,
+!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
+c.appendChild(g)}var n=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),B=this.addCheckbox(c,mxResources.get("layers"),u,!u);B.style.marginLeft=q.style.marginLeft;B.style.marginBottom="12px";B.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?
+(u&&B.removeAttribute("disabled"),q.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(n.checked,r.checked,l.checked,t.checked,p.getLink(),B.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
+function(a,b,d,e,k,h,m,l){function c(c){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 n="";d&&(n=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');m('<img src="'+c+'"'+n+(""!=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");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 g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?c("data:image/png;base64,"+n.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
+b,d,e,k,h,m){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var n=f[g].getAttribute("href");null!=n&&"#"==n.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",l="";e&&(r="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(c,mxUtils.bind(this,function(a){m('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+r+"/>")}))}else l="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=l&&c.setAttribute("style",l),m(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+
 " "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,d,e){a.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(b),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this,
 function(){e()}))}),0)):e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(d=b.decompress(mxUtils.getTextContent(c)),null!=d&&0<d.length&&(a=mxUtils.parseXml(d).documentElement))}d=
-this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(l){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=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),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),
-f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(B){null!=
-b&&b(B)}}),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,h,l,n){n=b.background;n==mxConstants.NONE&&(n=null);b=b.getSvg(n,null,null,null,null,l);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=h)this.convertImages(b,mxUtils.bind(this,function(a){h((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,h,l,n,m,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,h?this.getFileData(!0,null,null,null,d,m):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,l,n)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"),
-"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},l=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var k=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,k))]);f.push('"'+b[g].substring(k))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var h=1;h<b.length;h++){var m=b[h].indexOf(")"),p=null,q=b[h].indexOf("format(",m);0<q&&(p=c(b[h].substring(q+7,b[h].indexOf(")",q))));mxUtils.bind(this,function(a){if(null==
-e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==p||"embedded-opentype"==p||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==p||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==p||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==p||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==p||/(\.sfnt)($|\?)/i.test(a))c="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(c){e[a]=c;d--;l()}),mxUtils.bind(this,function(a){d--;l()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[h].substring(0,m)),p)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,h,l,n,m,p,q,y,t,u,H){l=null!=l?l:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&&
-(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=n?n:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),k=parseInt(d.getAttribute("height"));m=null!=m?m:1;null!=b&&(m=l?Math.min(1,Math.min(3*b/(4*k),b/g)):b/g);g=Math.ceil(m*g)+2*u;k=Math.ceil(m*k)+2*u;f.setAttribute("width",g);f.setAttribute("height",k);var n=f.getContext("2d");null!=
-c&&(n.beginPath(),n.rect(0,0,g,k),n.fillStyle=c,n.fill());n.scale(m,m);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/m,u/m);a(f)},0):(n.drawImage(e,u/m,u/m),a(f))}catch(P){null!=h&&h(P)}});e.onerror=function(a){null!=h&&h(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t,
-d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=h&&h(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||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,g){for(var k=a.getElementsByTagName(d),h=0;h<k.length;h++)mxUtils.bind(this,function(d){var k=e.convert(d.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var h=f[k];null==h?(c++,this.convertImageToDataUri(k,function(e){null!=e&&(f[k]=e,d.setAttribute(g,
-e));c--;0==c&&b(a)})):d.setAttribute(g,h)}else null!=k&&d.setAttribute(g,k)})(k[h])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,h,l){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);h=null!=h?h:!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 e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}l=null!=l?l:"data:image/png;base64,";e=l+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){h&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(v)}};EditorUi.prototype.isCorsEnabledForUrl=
+this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(h){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=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),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),
+f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(A){null!=
+b&&b(A)}}),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,k,h,m){m=b.background;m==mxConstants.NONE&&(m=null);b=b.getSvg(m,null,null,null,null,h);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);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,d,e,k,h,m,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,k?this.getFileData(!0,null,null,null,d,l):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,h,m)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"),
+"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},h=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var h=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var m=1;m<b.length;m++){var k=b[m].indexOf(")"),l=null,p=b[m].indexOf("format(",k);0<p&&(l=c(b[m].substring(p+7,b[m].indexOf(")",p))));mxUtils.bind(this,function(a){if(null==
+e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))c="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(c){e[a]=c;d--;h()}),mxUtils.bind(this,function(a){d--;h()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[m].substring(0,k)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,k,h,m,l,p,q,y,t,u,H){h=null!=h?h:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&&
+(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=m?m:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),m=parseInt(d.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=h?Math.min(1,Math.min(3*b/(4*m),b/g)):b/g);g=Math.ceil(l*g)+2*u;m=Math.ceil(l*m)+2*u;f.setAttribute("width",g);f.setAttribute("height",m);var n=f.getContext("2d");null!=
+c&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=c,n.fill());n.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/l,u/l);a(f)},0):(n.drawImage(e,u/l,u/l),a(f))}catch(P){null!=k&&k(P)}});e.onerror=function(a){null!=k&&k(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t,
+d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=k&&k(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||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,g){for(var h=a.getElementsByTagName(d),k=0;k<h.length;k++)mxUtils.bind(this,function(d){var h=e.convert(d.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=f[h];null==k?(c++,this.convertImageToDataUri(h,function(e){null!=e&&(f[h]=e,d.setAttribute(g,
+e));c--;0==c&&b(a)})):d.setAttribute(g,k)}else null!=h&&d.setAttribute(g,h)})(h[k])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,k,h){try{var c=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 e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&&
+"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}h=null!=h?h:"data:image/png;base64,";e=h+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){k&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(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?:\/\/[^\/]*\.draw\.io\/proxy/.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(n){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=
-function(a,b,d,e,h){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 g=mxUtils.parseXml(a),k=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)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++){m[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(m[a])),
-p=this.pages.length;null==r.getName()&&r.setName(mxResources.get("pageWithNumber",[p+1]));f.model.execute(new ChangePage(this,r,r,p))}}finally{f.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e))}}catch(z){throw h||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!=
-e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b,d)}catch(w){d(w)}else d({})});
-f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};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.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",
-c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,h,l,n){l=null!=l?l:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(h||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,d,l,!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,d,l,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),
-null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,l);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,l))}),mxUtils.bind(this,function(a){this.handleError(a)}));
-else{c=this.editor.graph;h=null;c.getModel().beginUpdate();try{h=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[h])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),h.value=a,c.updateCellSize(h),/\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(h.value)&&
-c.setLinkForCell(h,h.value),h.geometry.width+=c.gridSize,h.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[h]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
+function(a,b){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(m){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=
+function(a,b,d,e,k){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 g=mxUtils.parseXml(a),n=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var l=n.getElementsByTagName("diagram");if(1==l.length)n=mxUtils.parseXml(f.decompress(mxUtils.getTextContent(l[0]))).documentElement;else if(1<l.length){f.model.beginUpdate();try{for(a=0;a<l.length;a++){l[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(l[a])),
+t=this.pages.length;null==r.getName()&&(r.setName(mxResources.get("pageWithNumber",[t+1])),r.needsUpdate=!0);f.model.execute(new ChangePage(this,r,r,t))}}finally{f.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(c=f.importGraphModel(n,b,d,e))}}catch(z){throw k||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,
+b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b,
+d)}catch(w){d(w)}else d({})});f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};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.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?
+mxscript("js/diagramly/Extensions.js",c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,k,h,m){h=null!=h?h:!0;m=null!=m?m:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,
+d,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,d,h,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,
+null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),m,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,h);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,
+function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,h))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;k=null;c.getModel().beginUpdate();try{k=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[k])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),k.value=a,c.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)&&
+c.setLinkForCell(k,k.value),k.geometry.width+=c.gridSize,k.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
 function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&'{"state":"{\\"Properties\\":'==a.substring(0,26)};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&
 this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a)}),
-null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,h,l,n,m,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=
-null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,q);null!=m&&m(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,h,l,"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,q);null!=m&&m(a)})):null!=p&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(c=!0,this.importVisio(p,g)):!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?g(a.responseText):null!=m&&m(null))}),n)):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==m||m(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,n;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);
-c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}n=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(n&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,h,l,n,m,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0,
-6)&&a[r].size>k){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,k=g.gridSize;h=null!=h?h:mxUtils.bind(this,function(a,b,d,e,f,g,k,h,l){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,h,l,c,t)});l=null!=l?l:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a,
-c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=m)m(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}l(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var l=a[c],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(l))if("image/"==l.type.substring(0,6))if("image/svg"==l.type.substring(0,9)){var m=a.target.result,p=m.indexOf(","),r=decodeURIComponent(escape(atob(m.substring(p+1)))),
-v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(m.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=parseFloat(f.getAttribute("width")),
-r=parseFloat(f.getAttribute("height")),t=f.getAttribute("viewBox");if(null==t||0==t.length)f.setAttribute("viewBox","0 0 "+n+" "+r);else if(isNaN(n)||isNaN(r)){var q=t.split(" ");3<q.length&&(n=parseFloat(q[2]),r=parseFloat(q[3]))}m=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,r)),w=h(m,l.type,b+c*k,d+c*k,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(r*x)),l.name);if(isNaN(n)||isNaN(r)){var u=new Image;u.onload=mxUtils.bind(this,function(){n=
-Math.max(1,u.width);r=Math.max(1,u.height);w[0].geometry.width=n;w[0].geometry.height=r;f.setAttribute("viewBox","0 0 "+n+" "+r);m=this.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return h(x,"text/xml",b+c*k,d+c*k,0,0,l.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r=
-!1;if("image/png"==l.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return h(I,"text/xml",b+c*k,d+c*k,y.width,y.height,l.name)}));r=!0}}r||(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,m){w(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var p=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/n,e/m)):1;return h(g,l.type,b+c*k,d+c*k,Math.round(n*p),Math.round(m*p),l.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else h(a.target.result,
-l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(l.name)||/(\.vs(x|sx?))($|\?)/i.test(l.name)?h(null,l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})},l):"image"==l.type.substring(0,5)?m.readAsDataURL(l):m.readAsText(l)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
+null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,k,h,m,l,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=
+null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):c=this.importXml(a,d,e,q);null!=l&&l(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,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,d,e,q);null!=l&&l(a)})):null!=p&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?(c=!0,this.importVisio(p,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(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?g(a.responseText):null!=l&&l(null))}),m)):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==l||l(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,k;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);
+c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}k=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,k,h,m,l,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0,
+6)&&a[r].size>n){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,n=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,d,e,f,g,h,k,m){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,d,e,f,g,h,k,m,c,t)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a,
+c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=l)l(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}h(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var h=a[c],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==m||m(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var l=a.target.result,p=l.indexOf(","),r=decodeURIComponent(escape(atob(l.substring(p+1)))),
+v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(l.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")),
+t=parseFloat(f.getAttribute("height")),r=f.getAttribute("viewBox");if(null==r||0==r.length)f.setAttribute("viewBox","0 0 "+m+" "+t);else if(isNaN(m)||isNaN(t)){var q=r.split(" ");3<q.length&&(m=parseFloat(q[2]),t=parseFloat(q[3]))}l=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,t)),w=k(l,h.type,b+c*n,d+c*n,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(t*x)),h.name);if(isNaN(m)||isNaN(t)){var u=new Image;u.onload=mxUtils.bind(this,function(){m=
+Math.max(1,u.width);t=Math.max(1,u.height);w[0].geometry.width=m;w[0].geometry.height=t;f.setAttribute("viewBox","0 0 "+m+" "+t);l=this.createSvgDataUri(mxUtils.getXml(f));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));g.setCellStyles("image",l,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return k(x,"text/xml",b+c*n,d+c*n,0,0,h.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r=
+!1;if("image/png"==h.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return k(I,"text/xml",b+c*n,d+c*n,y.width,y.height,h.name)}));r=!0}}r||(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(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var t=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/m,e/l)):1;return k(g,h.type,b+c*n,d+c*n,Math.round(m*t),Math.round(l*t),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result,
+h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(h.name)||/(\.vs(x|sx?))($|\?)/i.test(h.name)?k(null,h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})},h):"image"==h.type.substring(0,5)?l.readAsDataURL(h):l.readAsText(h)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
 d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,
-340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,h,l){h=null!=h?h:this.maxImageSize;var c=Math.max(1,a.width),
-f=Math.max(1,a.height);if(e&&this.isResampleImage(b,l))try{var g=Math.max(c/h,f/h);if(1<g){var k=Math.round(c/g),m=Math.round(f/g),p=document.createElement("canvas");p.width=k;p.height=m;p.getContext("2d").drawImage(a,0,0,k,m);var r=p.toDataURL();if(r.length<b.length){var q=document.createElement("canvas");q.width=k;q.height=m;var u=q.toDataURL();r!==u&&(b=r,c=k,f=m)}}}catch(A){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var b=e,h=0;8>h;h++)b=1==(b&1)?3988292384^b>>>1:b>>>
-1,EditorUi.prototype.crcTable[e]=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.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,h){function c(a,c){var b=k;k+=c;return a.substring(b,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 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 k=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=h&&h();else if(c(a,4),"IHDR"!=c(a,4))null!=h&&h();else{c(a,17);h=a.substring(0,k);do{var m=f(a);if("IDAT"==c(a,4)){h=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);h+=g(d.length)+b+d+g(e^4294967295);h+=a.substring(k-8,a.length);break}h+=a.substring(k-8,k-4+m);c(a,m);c(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(h):Base64.encode(h,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+
+340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,k,h){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width),
+f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(c/k,f/k);if(1<g){var n=Math.round(c/g),l=Math.round(f/g),t=document.createElement("canvas");t.width=n;t.height=l;t.getContext("2d").drawImage(a,0,0,n,l);var p=t.toDataURL();if(p.length<b.length){var r=document.createElement("canvas");r.width=n;r.height=l;var q=r.toDataURL();p!==q&&(b=p,c=n,f=l)}}}catch(B){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var d=e,k=0;8>k;k++)d=1==(d&1)?3988292384^d>>>1:d>>>
+1,EditorUi.prototype.crcTable[e]=d;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.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,k){function c(a,c){var b=n;n+=c;return a.substring(b,n)}function f(a){a=c(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 n=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(c(a,4),"IHDR"!=c(a,4))null!=k&&k();else{c(a,17);k=a.substring(0,n);do{var l=f(a);if("IDAT"==c(a,4)){k=a.substring(0,n-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);k+=g(d.length)+b+d+g(e^4294967295);k+=a.substring(n-8,a.length);break}k+=a.substring(n-8,n-4+l);c(a,l);c(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+
 8,a+8+e);"zTXt"==b?(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&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(r){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};EditorUi.prototype.loadImage=function(a,b,d){var c=
-new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(x){a.handleError(x)}return b};var d=this.clearDefaultStyle;
-this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(c){c=null!=c?c:"";if(null!=a.pages&&null!=a.currentPage)for(var b=0;b<a.pages.length;b++)if(a.pages[b]==a.currentPage){0<b&&(c+=(0<c.length?"&":"?")+"page="+b);break}"1"==urlParams.dev&&(c+=(0<c.length?"&":"?")+"dev=1&drawdev=1");
-return e.apply(this,arguments)};var h=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};h.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=
-function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getGlobalVariable;b.getGlobalVariable=function(c){return"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var n=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||
-!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))n.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?b.getTitle():c);return c};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless||
+new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(x){a.handleError(x)}return c};var d=this.clearDefaultStyle;
+this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");
+return e.apply(this,arguments)};var k=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};k.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=
+function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:h.apply(this,arguments)};var m=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||
+!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))m.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless||
 this.editor.editable){var q=function(){window.setTimeout(function(){u.innerHTML="&nbsp;";u.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||
-b.container.addEventListener("paste",mxUtils.bind(this,function(a){var c=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var b=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var g=f[index];if("file"===g.kind){if(c.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,
-6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML="&nbsp;";var y=!1;this.keyHandler.bindControlKey(88,null);
+b.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(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML="&nbsp;";var y=!1;this.keyHandler.bindControlKey(88,null);
 this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||y||(u.style.left=b.container.scrollLeft+10+"px",u.style.top=b.container.scrollTop+10+"px",b.container.appendChild(u),
 y=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){u.focus();document.execCommand("selectAll",!1,null)},0):(u.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!y||224!=c&&17!=c&&91!=c||(y=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),u.parentNode.removeChild(u),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(u,
 "copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u),q())}));mxEvent.addListener(u,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u,!0),q())}));mxEvent.addListener(u,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(u.innerHTML="&nbsp;",u.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,u);u.innerHTML="&nbsp;"}),0))}),!0);var t=this.isSelectionAllowed;this.isSelectionAllowed=
-function(a){return mxEvent.getSource(a)==u?!0:t.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 c=this.editor.graph,b=c.cellEditor.text2,d=null;null!=b&&(mxEvent.addListener(b,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),
-mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(b));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(b,"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,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=
-0;c<a.length;c++)a[c]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var b=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)?this.loadImage(decodeURIComponent(b),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));c.insertImage(decodeURIComponent(b),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=
+function(a){return mxEvent.getSource(a)==u?!0:t.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){p=document.createElement("div");p.style.position="absolute";p.style.top="95px";p.style.left="250px";p.style.width="2000px";p.style.height="30px";p.style.background=
 "whiteSmoke";document.body.appendChild(p);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 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,
 z,!0);this.hRuler=new mxRuler(this.editor.graph,p,!1)}if("1"==urlParams.styledev){p=document.getElementById("geFooter");null!=p&&(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)})),p.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||"";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)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var A=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=A&&(A.parentNode.removeChild(A),A=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==
-A&&(!mxClient.IS_IE||10<document.documentMode)&&(A=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=A&&(A.parentNode.removeChild(A),A=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;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,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var l=null,d=c.getElementsByTagName("img");
-null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(l=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,l,null,n))});l&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;m()},mxEvent.isControlDown(a)):m()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this,
+function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),p.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 G=this.isSelectionAllowed;
+this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var B=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=B&&(B.parentNode.removeChild(B),B=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==
+B&&(!mxClient.IS_IE||10<document.documentMode)&&(B=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=B&&(B.parentNode.removeChild(B),B=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;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,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var m=null,d=c.getElementsByTagName("img");
+null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(m=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,m,null,n))});m&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=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 c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(h,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),
 f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");0<b&&(c=this.getPageById(a.substring(b+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=
 function(a){if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");if(a=this.getPageById(a.substring(c+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();
@@ -3011,19 +3016,19 @@ this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]
 function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor();this.addListener("gridColorChanged",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.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),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 h=e.lastIndexOf("%3E");0<=h&&h<e.length-3&&(e=e.substring(0,h+3))}catch(v){}try{var c=b.getElementsByTagName("span"),
-m=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(m)&&(f=!0,e=m)}catch(v){}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))),
+c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),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 k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(v){}try{var c=b.getElementsByTagName("span"),
+l=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(v){}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(v){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||
 "1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=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 b=this.extractGraphModelFromEvent(a);if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=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!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=b,d=d.getElementsByTagName("img"),
 0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&&
-(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)-
-3}else c=a.offsetTop,b=a.offsetLeft,d=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=c+"px";h.style.left=b+"px";h.style.width=Math.max(0,d-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 c=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}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=
+(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)-
+3}else b=a.offsetTop,c=a.offsetLeft,d=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=c+"px";h.style.width=Math.max(0,d-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 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 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(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,
 e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/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(d,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(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));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(B){this.handleError(B,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,d){var c=this.getCurrentFile(),
+c.target.result,a.name))}catch(A){this.handleError(A,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,d){var c=this.getCurrentFile(),
 e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d))});null!=a&&0<a.length&&(null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),
 null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}))))};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),
 this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),
@@ -3034,38 +3039,38 @@ this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&wind
 function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,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){if(f.source==(window.opener||window.parent)){var g=f.data,h=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&
 ("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(R){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(I){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop();
-h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var k=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),k,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",
-result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{h.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;k=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?n.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;n.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,k?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;n.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){n.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"==
-g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(k=0;k<this.pages.length;k++){var m=l;this.currentPage!=this.pages[k]&&(m=this.createTemporaryGraph(l.getStylesheet()),m.model.setRoot(this.pages[k].root));h+=this.pages[k].getName()+" "+m.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0);
-n.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"==
-g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);n.postMessage(JSON.stringify(b),"*")}),u=
+h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var m=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),m,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",
+result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
+try{h.init()}catch(I){k.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;m=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.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,m?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"==
+g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(m=0;m<this.pages.length;m++){var n=l;this.currentPage!=this.pages[m]&&(n=this.createTemporaryGraph(l.getStylesheet()),n.model.setRoot(this.pages[m].root));h+=this.pages[m].getName()+" "+n.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0);
+k.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"==
+g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);k.postMessage(JSON.stringify(b),"*")}),u=
 mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);r(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),w=l.getGlobalVariable,x=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?1:w.apply(this,
 arguments)};document.body.appendChild(l.container);l.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,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?r("data:image/png;base64,"+a.getText()):
 u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);p=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))h=this.getXmlFileData(),p.xml=mxUtils.getXml(h),p.data=this.getFileData(null,null,!0,null,null,null,h),p.format=g.format;else if("html"==g.format)q=this.editor.getGraphXml(),p.data=this.getHtml(q,this.editor.graph),p.xml=mxUtils.getXml(q),p.format=g.format;
 else{mxSvgCanvas2D.prototype.foAltText=null;h=this.editor.graph.background;h==mxConstants.NONE&&(h=null);p.xml=this.getFileData(!0);p.format="svg";if(g.embedImages||null==g.embedImages){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==g.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);
-n.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));n.postMessage(JSON.stringify(p),"*")}));return}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}n.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave,
-this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(k=document.createElement("span"),mxUtils.write(k,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),
-null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(k),this.embedFilenameSpan=k),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!=
+k.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),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}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}k.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave,
+this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(m=document.createElement("span"),mxUtils.write(m,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),
+null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(m),this.embedFilenameSpan=m),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!=
 urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=h();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=h();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||n.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&&
+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")),"*")});null!=g&&"function"===typeof g.substring&&
 "data:application/vnd.visio;base64,"==g.substring(0,34)?(h="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){C(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),h)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&
-299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));var n=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=
+299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));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,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,h=null,m=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,A=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C=
+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,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,k=null,l=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,B=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C=
 function(){null!=b?b(aa):(x.setSelectionCells(aa),x.scrollCellToVisible(x.getSelectionCell()))},I=x.getFreeInsertPoint(),R=I.x,P=I.y,I=P,X=null,U="auto",p=null,F=[],ea=null,ka=null,Y=0;Y<c.length&&"#"==c[Y].charAt(0);){a=c[Y];for(Y++;Y<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[Y].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[Y].substring(1)),Y++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<ba){var L=mxUtils.trim(a.substring(1,ba)),E=mxUtils.trim(a.substring(ba+1));"label"==L?X=x.sanitizeHtml(E):
-"style"==L?f=E:"parentstyle"==L?h=E:"identity"==L&&0<E.length&&"-"!=E?m=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?A=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null;
-if(null!=m||null!=p)for(var M=0;M<S.length;M++)m==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D,
+"style"==L?f=E:"parentstyle"==L?k=E:"identity"==L&&0<E.length&&"-"!=E?l=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?B=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null;
+if(null!=l||null!=p)for(var M=0;M<S.length;M++)l==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D,
 S[V],T[V]);x.setAttributeForCell(D,"placeholders","1");D.style=x.replacePlaceholders(D,D.style);for(N=0;N<F.length;N++)e[F[N].to][D.getAttribute(F[N].to)]=D;null!=ea&&"link"!=ea&&(x.setLinkForCell(D,D.getAttribute(ea)),x.setAttributeForCell(D,ea,null));x.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var ga=this.editor.graph.getPreferredSizeForCell(D);D.vertex&&(null!=z&&null!=D.getAttribute(z)&&(D.geometry.x=R+parseFloat(D.getAttribute(z))),null!=H&&null!=D.getAttribute(H)&&(D.geometry.y=
-P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+A);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,h),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W=
+P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+B);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,k),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W=
 d.slice(),aa=d.slice(),N=0;N<F.length;N++)for(var Z=F[N],M=0;M<d.length;M++){var D=d[M],pa=D.getAttribute(Z.from);if(null!=pa){x.setAttributeForCell(D,Z.from,null);for(var ra=pa.split(","),V=0;V<ra.length;V++){var fa=e[Z.to][ra[V]];null!=fa&&(X=Z.label,null!=Z.fromlabel&&(X=(D.getAttribute(Z.fromlabel)||"")+(X||"")),null!=Z.tolabel&&(X=(X||"")+(fa.getAttribute(Z.tolabel)||"")),aa.push(x.insertEdge(null,null,X||"",Z.invert?fa:D,Z.invert?D:fa,Z.style||x.createCurrentEdgeStyle())),mxUtils.remove(Z.invert?
 D:fa,W))}}}if(null!=ka)for(M=0;M<d.length;M++)for(D=d[M],V=0;V<ka.length;V++)x.setAttributeForCell(D,mxUtils.trim(ka[V]),null);var ma=new mxParallelEdgeLayout(x);ma.spacing=G;var ta=function(){ma.execute(x.getDefaultParent());for(var a=0;a<d.length;a++){var b=x.getCellGeometry(d[a]);b.x=Math.round(x.snap(b.x));b.y=Math.round(x.snap(b.y));"auto"==u&&(b.width=Math.round(x.snap(b.width)));"auto"==t&&(b.height=Math.round(x.snap(b.height)))}};if("circle"==U){var la=new mxCircleLayout(x);la.resetEdges=
-!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=A;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)},
-!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=A;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x);
-da.forceConstant=3*A;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c=
+!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=B;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)},
+!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=B;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x);
+da.forceConstant=3*B;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};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,480,130,!0,!0);a.init()};var p=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=p.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*
@@ -3076,122 +3081,122 @@ c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;b||null=
 var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||
 null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));
 if(this.isAppCache()){var e=applicationCache;if(null!=e&&null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin="4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML=
-"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,h=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+
-'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=h&&(this.offlineStatus.innerHTML=
-b,h=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();
+"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,k=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+
+'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=k&&(this.offlineStatus.innerHTML=
+b,k=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();
 return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);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!=d);this.actions.get("makeCopy").setEnabled(null!=
 d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);
 this.actions.get("rename").setEnabled(null!=d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=
-null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,h,l){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,h,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*h/c.view.scale),m=Math.floor(g.height*
-h/c.view.scale);f.length<=MAX_REQUEST_SIZE&&k*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+m+"&border="+l+"&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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
-DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,d,e){this.ui=a;this.page=d;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
-function MovePage(a,d,e){this.ui=a;this.oldIndex=d;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,d){this.ui=a;this.previousPage=this.page=d;this.neverShown=!0;null!=d&&(this.neverShown=null==d.viewState,this.ui.updatePageRoot(d))}
-SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,d=this.ui.editor,e=d.graph,b=d.graph.compress(e.zapGremlins(mxUtils.getXml(d.getGraphXml(!0))));mxUtils.setTextContent(a.node,b);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root);
-e.setViewState(a.viewState);d.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);d.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());d.graph.fireEvent(new mxEventObject(mxEvent.ROOT));d.fireEvent(new mxEventObject("pageSelected","change",this))}};
-function ChangePage(a,d,e,b){SelectPage.call(this,a,e);this.relatedPage=d;this.index=b;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
+null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,k,h){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),l=Math.floor(g.width*k/c.view.scale),p=Math.floor(g.height*
+k/c.view.scale);f.length<=MAX_REQUEST_SIZE&&l*p<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+p+"&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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
+function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
+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))}
+SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,e=b.graph,d=b.graph.compress(e.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root);
+e.setViewState(a.viewState);b.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);b.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};
+function ChangePage(a,b,e,d){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
 ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
-EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var d=0;d<this.pages.length;d++)if(this.pages[d]==this.currentPage){a=d;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var d=0;d<this.pages.length;d++)if(this.pages[d].getId()==a)return this.pages[d];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,d=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)}d.apply(a.view,arguments)});var e=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
+EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){a=b;break}return a};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 d=this.tabContainer.style.height;this.tabContainer.style.height=
+null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";d!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&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),e=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&
-this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,d){for(var e=d.getProperty("edit").changes,h=0;h<e.length;h++)if(e[h]instanceof SelectPage||e[h]instanceof RenamePage||e[h]instanceof MovePage||e[h]instanceof mxRootChange){b();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
-Graph.prototype.createViewState=function(a){var d=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),b=parseFloat(a.getAttribute("pageWidth")),h=parseFloat(a.getAttribute("pageHeight")),m=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):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.isLightboxView()?!1:null!=d?"0"!=d:this.defaultPageVisible,background:null!=m&&0<m.length?m:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(b)||isNaN(h)?this.pageFormat:new mxRectangle(0,0,b,b),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),
-selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
-Graph.prototype.saveViewState=function(a,d){d.setAttribute("grid",null==a||a.gridEnabled?"1":"0");d.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);d.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");d.setAttribute("tooltips",null==a||a.tooltips?"1":"0");d.setAttribute("connect",null==a||a.connect?"1":"0");d.setAttribute("arrows",null==a||a.arrows?"1":"0");d.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");d.setAttribute("page",null==a&&this.defaultPageVisible||
-null!=a&&a.pageVisible?"1":"0");d.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(d.setAttribute("pageWidth",e.width),d.setAttribute("pageHeight",e.height));d.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&d.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));d.setAttribute("math",null!=a&&a.mathEnabled?
-"1":"0");d.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")};
+this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,k=0;k<e.length;k++)if(e[k]instanceof SelectPage||e[k]instanceof RenamePage||e[k]instanceof MovePage||e[k]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),k=parseFloat(a.getAttribute("pageHeight")),l=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):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.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(k)?mxSettings.getPageFormat():new mxRectangle(0,0,d,k),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==
+a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
+Graph.prototype.saveViewState=function(a,b){b.setAttribute("grid",null==a||a.gridEnabled?"1":"0");b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");b.setAttribute("tooltips",null==a||a.tooltips?"1":"0");b.setAttribute("connect",null==a||a.connect?"1":"0");b.setAttribute("arrows",null==a||a.arrows?"1":"0");b.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");b.setAttribute("page",null==a&&this.defaultPageVisible||
+null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(b.setAttribute("pageWidth",e.width),b.setAttribute("pageHeight",e.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow",
+null!=a&&a.shadowVisible?"1":"0")};
 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}};
 Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat=
 a.pageFormat,this.view.currentRoot=a.currentRoot,this.defaultParent=a.defaultParent,this.connectionArrowsEnabled=a.arrows,this.setTooltips(a.tooltips),this.setConnectable(a.connect),this.view.scale=null!=a.scale?a.scale:1,null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null),null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer()),null!=a.translate&&(this.view.translate=a.translate)):
 (this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=!0,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat=mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.background=this.defaultGraphBackground,this.backgroundImage=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml=
-null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var d=this.editor.extractGraphModel(a.node);if(null!=d){a.graphModelNode=d;a.viewState=this.editor.graph.createViewState(d);var e=new mxCodec(d.ownerDocument);a.root=e.decode(d).root}else a.root=this.editor.graph.model.createRoot()}return a};
-EditorUi.prototype.selectPage=function(a,d){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);d=null!=d?d:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var b=new SelectPage(this,a);b.execute();e.add(b);e.notify();this.editor.graph.tooltipHandler.hide();d||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))};
-EditorUi.prototype.selectNextPage=function(a){var d=this.currentPage;null!=d&&null!=this.pages&&(d=mxUtils.indexOf(this.pages,d),a?this.selectPage(this.pages[mxUtils.mod(d+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(d-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,d){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();d=null!=d?d:this.pages.length;var e=new ChangePage(this,a,a,d);this.editor.graph.model.execute(e)}return a};
-EditorUi.prototype.createPage=function(a){var d=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));d.setName(null!=a?a:this.createPageName());return d};EditorUi.prototype.createPageName=function(){for(var a={},d=0;d<this.pages.length;d++){var e=this.pages[d].getName();null!=e&&0<e.length&&(a[e]=e)}d=this.pages.length;do e=mxResources.get("pageWithNumber",[++d]);while(null!=a[e]);return e};
-EditorUi.prototype.removePage=function(a){var d=this.editor.graph;if(d.isEnabled()){d.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var b=mxUtils.indexOf(this.pages,a);b==this.pages.length-1?b--:b++;e=this.pages[b]}else e=this.insertPage(),d.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));d.model.execute(new ChangePage(this,a,e))}finally{d.model.endUpdate()}}return a};
-EditorUi.prototype.duplicatePage=function(a,d){var e=this.editor.graph,b=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),b=a.node.cloneNode(!1),b.removeAttribute("id"),b=new DiagramPage(b),b.root=e.cloneCells([e.model.root])[0],b.viewState=e.getViewState(),b.viewState.scale=1,b.viewState.scrollLeft=null,b.viewState.scrollTop=null,b.viewState.currentRoot=null,b.viewState.defaultParent=null,b.setName(d),b=this.insertPage(b,mxUtils.indexOf(this.pages,a)+1));return b};
-EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var d=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(d){null!=d&&0<d.length&&this.editor.graph.model.execute(new RenamePage(this,a,d))}),mxResources.get("rename"));this.showDialog(d.container,300,80,!0,!0);d.init()}return a};EditorUi.prototype.movePage=function(a,d){this.editor.graph.model.execute(new MovePage(this,a,d))};
+null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var b=this.editor.extractGraphModel(a.node);if(null!=b){a.graphModelNode=b;a.viewState=this.editor.graph.createViewState(b);var e=new mxCodec(b.ownerDocument);a.root=e.decode(b).root}else a.root=this.editor.graph.model.createRoot()}return a};
+EditorUi.prototype.selectPage=function(a,b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var d=new SelectPage(this,a);d.execute();e.add(d);e.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))};
+EditorUi.prototype.selectNextPage=function(a){var b=this.currentPage;null!=b&&null!=this.pages&&(b=mxUtils.indexOf(this.pages,b),a?this.selectPage(this.pages[mxUtils.mod(b+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(b-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,b){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();b=null!=b?b:this.pages.length;var e=new ChangePage(this,a,a,b);this.editor.graph.model.execute(e)}return a};
+EditorUi.prototype.createPage=function(a){var b=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));b.setName(null!=a?a:this.createPageName());return b};EditorUi.prototype.createPageName=function(){for(var a={},b=0;b<this.pages.length;b++){var e=this.pages[b].getName();null!=e&&0<e.length&&(a[e]=e)}b=this.pages.length;do e=mxResources.get("pageWithNumber",[++b]);while(null!=a[e]);return e};
+EditorUi.prototype.removePage=function(a){var b=this.editor.graph;if(b.isEnabled()){b.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var d=mxUtils.indexOf(this.pages,a);d==this.pages.length-1?d--:d++;e=this.pages[d]}else e=this.insertPage(),b.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));b.model.execute(new ChangePage(this,a,e))}finally{b.model.endUpdate()}}return a};
+EditorUi.prototype.duplicatePage=function(a,b){var e=this.editor.graph,d=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),d=a.node.cloneNode(!1),d.removeAttribute("id"),d=new DiagramPage(d),d.root=e.cloneCells([e.model.root])[0],d.viewState=e.getViewState(),d.viewState.scale=1,d.viewState.scrollLeft=null,d.viewState.scrollTop=null,d.viewState.currentRoot=null,d.viewState.defaultParent=null,d.setName(b),d=this.insertPage(d,mxUtils.indexOf(this.pages,a)+1));return d};
+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,d=document.createElement("div");d.style.position="relative";d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.verticalAlign="top";d.style.height=this.tabContainer.style.height;d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.fontSize="12px";d.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,b=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
-e)/this.pages.length)+1),h=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(b,e){this.pages[b]==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(c){a.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),h=b):mxEvent.consume(c)}));mxEvent.addListener(e,
-"dragend",mxUtils.bind(this,function(a){h=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=h&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){null!=h&&b!=h&&this.movePage(h,b);a.stopPropagation();a.preventDefault()}));d.appendChild(e)})(m,this.createTabForPage(this.pages[m],b,this.pages[m]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(d);
-b=this.createPageMenuTab();this.tabContainer.appendChild(b);b=null;this.isPageInsertTabVisible()&&(b=this.createPageInsertTab(),this.tabContainer.appendChild(b));if(d.clientWidth>this.tabContainer.clientWidth-e){null!=b&&(b.style.position="absolute",b.style.right="0px",d.style.marginRight="30px");var p=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);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 u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));d.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){d.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p,
-0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){d.scrollLeft+=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.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 d=document.createElement("div");d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.whiteSpace="nowrap";d.style.boxSizing="border-box";d.style.position="relative";d.style.overflow="hidden";d.style.marginLeft="-1px";d.style.height=this.tabContainer.clientHeight+"px";d.style.padding="8px 4px 8px 4px";d.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";d.style.borderBottomStyle="solid";d.style.backgroundColor=this.tabContainer.style.backgroundColor;
-d.style.cursor="move";d.style.color="gray";a&&(mxEvent.addListener(d,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(d.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(d,"mouseleave",mxUtils.bind(this,function(a){d.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return d};
-EditorUi.prototype.createControlTab=function(a,d){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=d;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
-EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var d=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this,
+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.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
+e)/this.pages.length)+1),k=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",d.style.fontWeight="bold",d.style.borderTopStyle="none"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=c):mxEvent.consume(b)}));mxEvent.addListener(d,
+"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=k&&c!=k&&this.movePage(k,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(l,this.createTabForPage(this.pages[l],d,this.pages[l]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
+d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var p=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);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 u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p,
+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,u-20);mxUtils.setOpacity(p,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="move";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};
+EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var b=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this,
 function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var e=this.currentPage;null!=e&&(a.addSeparator(b),a.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(e)}),b),a.addItem(mxResources.get("rename"),
-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))}}));d.div.className+=" geMenubarMenu";d.smartSeparators=!0;d.showDisabled=!0;d.autoExpand=!0;d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d,arguments);d.destroy()});var b=mxEvent.getClientX(a),h=mxEvent.getClientY(a);d.popup(b,h,null,a);this.setCurrentMenu(d);
+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 d=mxEvent.getClientX(a),k=mxEvent.getClientY(a);b.popup(d,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,d,e){e=this.createTab(e);var b=a.getName();e.setAttribute("title",b);mxUtils.write(e,b);e.style.maxWidth=d+"px";e.style.width=d+"px";this.addTabListeners(a,e);42<d&&(e.style.textOverflow="ellipsis");return e};
-EditorUi.prototype.addTabListeners=function(a,d){mxEvent.disableContextMenu(d);var e=this.editor.graph;mxEvent.addListener(d,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var b=!1,h=!1;mxEvent.addGestureListeners(d,mxUtils.bind(this,function(d){b=null!=this.currentMenu;h=a==this.currentPage;e.isMouseDown||h||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&h||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!b){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(m),u=mxEvent.getClientY(m);p.popup(q,u,null,m);this.setCurrentMenu(p,d)}mxEvent.consume(m)}}))};
-EditorUi.prototype.createPageMenu=function(a,d){return mxUtils.bind(this,function(e,b){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),b);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),b);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,d)}),b);e.addSeparator(b);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
-mxResources.get("copyOf",[a.getName()]))}),b)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(d){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.oldIndex;b.oldIndex=b.newIndex;b.newIndex=a;return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.previous;b.previous=b.name;b.name=a;return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),d="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,b,h){h.setAttribute("relatedPage",b.relatedPage.getId());null==b.index&&(h.setAttribute("name",b.relatedPage.getName()),null!=b.relatedPage.viewState&&h.setAttribute("viewState",JSON.stringify(b.relatedPage.viewState,function(a,b){return 0>mxUtils.indexOf(d,
-a)?b:void 0})),null!=b.relatedPage.root&&a.encodeCell(b.relatedPage.root,h));return h};a.beforeDecode=function(a,b,d){d.ui=a.ui;d.relatedPage=d.ui.getPageById(b.getAttribute("relatedPage"));if(null==d.relatedPage){var e=b.ownerDocument.createElement("diagram");e.setAttribute("id",b.getAttribute("relatedPage"));e.setAttribute("name",b.getAttribute("name"));d.relatedPage=new DiagramPage(e);e=b.getAttribute("viewState");null!=e&&(d.relatedPage.viewState=JSON.parse(e),b.removeAttribute("viewState"));
-b=b.cloneNode(!0);e=b.firstChild;if(null!=e)for(d.relatedPage.root=a.decodeCell(e,!1),d=e.nextSibling,e.parentNode.removeChild(e),e=d;null!=e;){d=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var h=e.getAttribute("id");null==a.lookup(h)&&a.decodeCell(e)}e.parentNode.removeChild(e);e=d}}return b};a.afterDecode=function(a,b,d){d.index=d.previousIndex;return d};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";EditorUi.prototype.altShiftActions[68]=
-"selectDescendants";var d=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,b,e,q,u){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=e.slice(),f=[],g=0;g<e.length;g++){var h=this.view.getState(e[g]),m=null!=h?h.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(m,"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=c;e=d.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return n.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b="tree"==(null!=
-b?b.style:l.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b=null!=(null!=b?b.style:l.getCellStyle(a)).childLayout);return b}function q(a){a=l.view.getState(a);if(null!=a){var b=l.getIncomingEdges(a.cell);if(0<b.length&&(b=l.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 u(a,b){b=null!=b?b:!0;l.model.beginUpdate();try{var d=l.model.getParent(a),c=l.getIncomingEdges(a),e=l.cloneCells([c[0],a]);l.model.setTerminal(e[0],l.model.getTerminal(c[0],!0),!0);var f=q(a),g=d.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;l.view.currentRoot!=d&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=l.view.getState(a),k=l.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=l.getOutgoingEdges(l.model.getTerminal(c[0],!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH||
-f==mxConstants.DIRECTION_NORTH,t=g=c=0;t<m.length;t++){var r=l.model.getTerminal(m[t],!1);if(f==q(r)){var x=l.view.getState(r);r!=a&&null!=x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY())&&mxUtils.intersects(n,x)&&(c=10+Math.max(c,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/k),g=10+Math.max(g,(Math.min(n.y+n.height,x.y+x.height)-Math.max(n.y,x.y))/k))}}p?g=0:c=0;for(t=0;t<m.length;t++)if(r=l.model.getTerminal(m[t],!1),f==q(r)&&(x=l.view.getState(r),r!=a&&null!=
-x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY()))){var u=[];l.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});l.moveCells(u,(b?1:-1)*c,(b?1:-1)*g)}}}return l.addCells(e,d)}finally{l.model.endUpdate()}}function c(a){l.model.beginUpdate();try{var b=q(a),c=l.getIncomingEdges(a),d=l.cloneCells([c[0],a]);l.model.setTerminal(c[0],d[1],!1);l.model.setTerminal(d[0],d[1],!0);l.model.setTerminal(d[0],a,!1);var e=l.model.getParent(a),f=e.geometry,g=[];l.view.currentRoot!=
-e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);l.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);l.moveCells(g,h,k);return l.addCells(d,e)}finally{l.model.endUpdate()}}function f(a){l.model.beginUpdate();try{var b=l.model.getParent(a),d=l.getIncomingEdges(a),c=l.cloneCells([d[0],
-a]);l.model.setTerminal(c[0],a,!0);var d=l.getOutgoingEdges(a),e=b.geometry,f=[];l.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<d.length;g++){var h=l.model.getTerminal(d[g],!1);null!=h&&f.push(h)}var k=l.view.getBounds(f),n=q(a),m=l.view.translate,p=l.view.scale;n==mxConstants.DIRECTION_SOUTH?(c[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x-e.x+10,c[1].geometry.y+=a.geometry.height-e.y+40):n==mxConstants.DIRECTION_NORTH?(c[1].geometry.x=
-null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x+-e.x+10,c[1].geometry.y-=c[1].geometry.height-e.y+40):(c[1].geometry.x=n==mxConstants.DIRECTION_WEST?c[1].geometry.x-(c[1].geometry.width-e.x+40):c[1].geometry.x+(a.geometry.width-e.x+40),c[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-c[1].geometry.height)/2:(k.y+k.height)/p-m.y+-e.y+10);return l.addCells(c,b)}finally{l.model.endUpdate()}}function g(a,b,c){a=l.getOutgoingEdges(a);c=l.view.getState(c);var d=
-[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=l.view.getState(l.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 k(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?r.actions.get("selectParent").funct():
-c==b?(d=l.getOutgoingEdges(a),null!=d&&0<d.length&&l.setSelectionCell(l.model.getTerminal(d[0],!1))):(c=l.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(l.model.getTerminal(c[0],!0),d,a),c=l.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&&l.setSelectionCell(d[c].cell)))))}var r=this,l=r.editor.graph,n=l.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings");
-mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.apply(this,arguments);if(1==l.getSelectionCount()){c=l.getSelectionCell();var e=l.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(l.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(l.getSelectionCell())&&(a.addSeparator(),0<l.getIncomingEdges(c).length&&
-this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};r.actions.addAction("selectChildren",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+X");r.actions.addAction("selectSiblings",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);if(null!=a&&0<a.length&&
-(a=l.getOutgoingEdges(l.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+S");r.actions.addAction("selectParent",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);null!=a&&0<a.length&&l.setSelectionCell(l.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");r.actions.addAction("selectDescendants",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=
-l.getSelectionCell(),b=[];l.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});l.setSelectionCells(b)}},null,null,"Alt+Shift+D");var v=l.removeCells;l.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];n.isEdge(g)&&d(g)&&(e.push(g),g=n.getTerminal(g,!1));b(g)?(l.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=l.getIncomingEdges(a[f]),
-a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var B=l.duplicateCells;l.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=l.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=l.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=B.call(this,a,c);if(h.length==
-a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=l.getIncomingEdges(h[e]),g=l.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var n=this.cloneCells([g[0]])[0];this.addEdge(n,l.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var y=l.moveCells;l.moveCells=function(a,c,d,e,f,g,h){var k=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])||l.model.isEdge(a[q])&&null==l.model.getTerminal(a[q],!0)){f=l.model.getParent(a[q]);break}if(null!=n&&f!=n&&null!=this.view.getState(a[0])){var t=l.getIncomingEdges(a[0]);if(0<t.length){var r=l.view.getState(l.model.getTerminal(t[0],!0));if(null!=r){var u=l.view.getState(n);null!=u&&(c=(u.getCenterX()-r.getCenterX())/l.view.scale,d=(u.getCenterY()-r.getCenterY())/l.view.scale)}}}}k=y.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(n)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[q],!0))&&this.model.setTerminal(k[q],n,!0);else if(b(a[q])&&(t=l.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==l.getIncomingEdges(k[q]).length){m=n;if(null==m||m==l.model.getParent(a[q]))m=l.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,l.getDefaultParent(),m,k[q])}}finally{this.model.endUpdate()}return k};
-if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=l.model,g=null;f.beginUpdate();try{if(g=t.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=l.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"),
-83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(l.isEnabled()&&!l.isEditing()&&b(l.getSelectionCell())&&1==l.getSelectionCount()){var d=null;0<l.getIncomingEdges(l.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(l.getSelectionCell()):f(l.getSelectionCell()):13==a.which&&(d=u(l.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&l.model.isEdge(d[0])?l.setSelectionCell(l.model.getTerminal(d[0],!1)):l.setSelectionCell(d[d.length-
-1]),null!=r.hoverIcons&&r.hoverIcons.update(l.view.getState(l.getSelectionCell())),l.startEditingAtCell(l.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_EAST),
-mxEvent.consume(a)):40==a.keyCode&&(k(l.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=l.connectVertex;l.connectVertex=function(a,d,e,g,h,k){var n=l.getIncomingEdges(a);return b(a)&&0<n.length?(e=q(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):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):
-G.call(this,a,d,e,g,h,k)};l.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&l.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 A=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){A.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=
+EditorUi.prototype.createTabForPage=function(a,b,e){e=this.createTab(e);var d=a.getName();e.setAttribute("title",d);mxUtils.write(e,d);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 d=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=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)||!d){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(l),u=mxEvent.getClientY(l);p.popup(q,u,null,l);this.setCurrentMenu(p,b)}mxEvent.consume(l)}}))};
+EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
+mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,k){k.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(k.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&k.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
+a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,k));return k};a.beforeDecode=function(a,b,k){k.ui=a.ui;k.relatedPage=k.ui.getPageById(b.getAttribute("relatedPage"));if(null==k.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));k.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(k.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
+b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(k.relatedPage.root=a.decodeCell(d,!1),k=d.nextSibling,d.parentNode.removeChild(d),d=k;null!=d;){k=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=k}}return b};a.afterDecode=function(a,b,k){k.index=k.previousIndex;return k};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";EditorUi.prototype.altShiftActions[68]=
+"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,d,e,q,u){d=null!=d?d:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=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=c;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.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return m.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=m.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=m.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 u(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;h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),m=h.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*m;var p=h.getOutgoingEdges(h.model.getTerminal(d[0],!0));if(null!=p){for(var n=f==mxConstants.DIRECTION_SOUTH||
+f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<p.length;t++){var r=h.model.getTerminal(p[t],!1);if(f==q(r)){var x=h.view.getState(r);r!=a&&null!=x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,x)&&(d=10+Math.max(d,(Math.min(l.x+l.width,x.x+x.width)-Math.max(l.x,x.x))/m),g=10+Math.max(g,(Math.min(l.y+l.height,x.y+x.height)-Math.max(l.y,x.y))/m))}}n?g=0:d=0;for(t=0;t<p.length;t++)if(r=h.model.getTerminal(p[t],!1),f==q(r)&&(x=h.view.getState(r),r!=a&&null!=
+x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&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 c(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,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,m=-40):b==mxConstants.DIRECTION_WEST?(k=-40,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);h.moveCells(g,k,m);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 m=h.view.getBounds(f),l=q(a),p=h.view.translate,n=h.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=
+null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=l==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==m?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(m.y+m.height)/n-p.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 n(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?r.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 r=this,h=r.editor.graph,m=h.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings");
+mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.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))}};r.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");r.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");r.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");r.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+D");var v=h.removeCells;h.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];m.isEdge(g)&&d(g)&&(e.push(g),g=m.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)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var A=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=A.call(this,a,c);if(k.length==
+a.length)for(e=0;e<a.length;e++)if(b(a[e])){var m=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==m.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var y=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,p=this.view.getState(f),n=null!=p?p.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding",
+"0")){for(var t=0;t<a.length;t++)if(b(a[t])||h.model.isEdge(a[t])&&null==h.model.getTerminal(a[t],!0)){f=h.model.getParent(a[t]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var q=h.getIncomingEdges(a[0]);if(0<q.length){var r=h.view.getState(h.model.getTerminal(q[0],!0));if(null!=r){var u=h.view.getState(l);null!=u&&(c=(u.getCenterX()-r.getCenterX())/h.view.scale,d=(u.getCenterY()-r.getCenterY())/h.view.scale)}}}}m=y.apply(this,arguments);if(null!=m&&null!=a&&m.length==a.length)for(t=0;t<
+m.length;t++)if(this.model.isEdge(m[t]))b(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[t],!0))&&this.model.setTerminal(m[t],l,!0);else if(b(a[t])&&(q=h.getIncomingEdges(a[t]),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==h.getIncomingEdges(m[t]).length){p=l;if(null==p||p==h.model.getParent(a[t]))p=h.model.getTerminal(q[0],!0);e=this.cloneCells([q[0]])[0];this.addEdge(e,h.getDefaultParent(),p,m[t])}}finally{this.model.endUpdate()}return m};
+if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=t.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 m=h.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"),
+83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var d=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(d=u(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&h.model.isEdge(d[0])?h.setSelectionCell(h.model.getTerminal(d[0],!1)):h.setSelectionCell(d[d.length-
+1]),null!=r.hoverIcons&&r.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_EAST),
+mxEvent.consume(a)):40==a.keyCode&&(n(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=h.connectVertex;h.connectVertex=function(a,d,e,g,k,m){var l=h.getIncomingEdges(a);return b(a)&&0<l.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==k?c(a):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):
+G.call(this,a,d,e,g,k,m)};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 B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.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 J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.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 K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.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=
+(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.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 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 h=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;");h.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);h.insertEdge(m,!1);var l=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;");l.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-n.geometry.relative=!0;n.edge=!0;b.insertEdge(n,!0);l.insertEdge(n,!1);a.insert(c);a.insert(g);a.insert(m);a.insert(n);a.insert(b);a.insert(d);a.insert(e);a.insert(h);a.insert(l);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 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);h.insertEdge(m,!1);a.insert(c);a.insert(g);a.insert(l);a.insert(m);a.insert(b);a.insert(d);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 b=new mxCell("Organization",
-new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(b,"treeRoot","1");b.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0;
-b.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(b);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a],
-a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
+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 d=new mxCell("Organization",
+new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(d,"treeRoot","1");d.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0;
+d.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(d);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a],
+a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
 a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
 a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0,
-0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new h(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&&
-a.formatWindow.window.fit()}function d(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new h(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
+0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new k(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&&
+a.formatWindow.window.fit()}function b(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new k(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
 g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("div");d.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";d.className="geTitle";mxUtils.write(d,mxResources.get("moreShapes"));b.appendChild(d);mxEvent.addListener(d,"click",function(){a.actions.get("shapes").funct()});var e=new Menubar(a,b);if(!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries)d.style.bottom=
 "0";else if(null!=a.actions.get("newLibrary")){d=document.createElement("div");d.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;";d.className="geTitle";var f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("newLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("newLibrary").funct);d=document.createElement("div");
 d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=c("newLibrary",mxResources.get("newLibrary")),d.style.left=
 "0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()}
-if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var b=document.createElement("style");b.type="text/css";b.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }";
-document.getElementsByTagName("head")[0].appendChild(b)}catch(n){}var h=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
+if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var d=document.createElement("style");d.type="text/css";d.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }";
+document.getElementsByTagName("head")[0].appendChild(d)}catch(m){}var k=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
 this.window.setLocation=function(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)}};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
 mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
 mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
 "0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.prototype.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight=46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert=!0;Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
-function(){return!1};var m=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");m.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut=
+function(){return!1};var l=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");l.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut=
 function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):q.apply(this,arguments)};var u=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){u.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)";
 a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("changeUser"))}};var c=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){c.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";
 a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==)";
@@ -3203,99 +3208,99 @@ mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResou
 null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("insert",a),this.addSubmenu("layout",a),a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b?
 !1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var g=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
 this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=
-null);g.apply(this,arguments)};var k=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){k.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var b=this.editorUi,c=b.editor.graph;b.actions.get("insertText").label=mxResources.get("text");
-b.actions.get("insertText").label=mxResources.get("text");b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("insertRectangle").label=mxResources.get("rectangle");b.actions.get("insertEllipse").label=mxResources.get("ellipse");b.actions.get("insertRhombus").label=mxResources.get("rhombus");b.actions.get("insertImage").label=mxResources.get("image")+"...";b.actions.get("insertLink").label=mxResources.get("link")+"...";b.actions.get("createShape").label=mxResources.get("shape")+
-"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importFile",new Action("File...",function(){c.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&b.importFiles(a.files,null,null,b.maxImageSize)});a.click()}));b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu();
-b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){d(b)}));b.actions.put("toggleFormat",
-new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,
-"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime&&b.menus.addMenuItems(a,["chatWindowTitle"],
-c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,c)}}this.put("save",new Menu(mxUtils.bind(this,
-function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],c);b.menus.addMenuItems(a,["-","autosave"],
-c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips"],
-c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+
-mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
-l=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=
-b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),m);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
+null);g.apply(this,arguments)};var n=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){n.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text");
+c.actions.get("insertText").label=mxResources.get("text");c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("insertRectangle").label=mxResources.get("rectangle");c.actions.get("insertEllipse").label=mxResources.get("ellipse");c.actions.get("insertRhombus").label=mxResources.get("rhombus");c.actions.get("insertImage").label=mxResources.get("image")+"...";c.actions.get("insertLink").label=mxResources.get("link")+"...";c.actions.get("createShape").label=mxResources.get("shape")+
+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importFile",new Action("File...",function(){d.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&c.importFiles(a.files,null,null,c.maxImageSize)});a.click()}));c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();
+c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat",
+new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
+c.menus.addMenuItems(a,"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime?c.menus.addMenuItems(a,["chatWindowTitle"],
+b):c.menus.addMenuItems(a,["-","refresh"],b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a,
+b)}}this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"],
+b);c.menus.addMenuItems(a,["-","autosave"],b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a,
+["scrollbars","tooltips"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout"));
+mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
+l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=
+c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var h=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),n);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
 f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
-"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage=
+"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?l.insertBefore(h,g.statusContainer):l.appendChild(h);null!=f?(h.style.backgroundImage=
 "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor=
 ""):(h.setAttribute("disabled","disabled"),mxUtils.setOpacity(h,null!=f?10:20),h.style.cursor="default")},e.addListener("stateChanged",a),a());return h}function c(a){var b=document.createElement("div");b.className="geMenuItem";b.style.display="inline-block";b.style.verticalAlign="top";b.style.marginRight="6px";b.style.padding="0 4px 0 4px";b.style.height="30px";b.style.position="relative";b.style.top="0px";for(var c=0;c<a.length;c++)null!=a[c]&&(a[c].style.margin="0px",a[c].style.boxShadow="none",
-b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function d(){for(var d=k.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}m=k.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,
+b.appendChild(a[c]));null!=g.statusContainer?l.insertBefore(b,g.statusContainer):l.appendChild(b);return b}function d(){for(var d=l.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}n=l.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,
 null,mxResources.get("shapes"),g.actions.get("image"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"),
 d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
 null)]);f=a("insert",!0,d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null,40);c([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":
 null)]);if(411<=e&&(f=g.actions.get("undo"),d=g.actions.get("redo"),f=b("",f.funct,null,mxResources.get("undo")+" ("+f.shortcut+")",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),d=b("",d.funct,
-null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),l=g.actions.get("resetView");
-c([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.translate.x,c=h.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-h.view.scale)&&b==h.view.translate.x&&c==h.view.translate.y&&g.actions.get(h.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",l,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),h=g.actions.get("resetView");
+c([b("",function(){k.popupMenuHandler.hideMenu();var a=k.view.scale,b=k.view.translate.x,c=k.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-k.view.scale)&&b==k.view.translate.x&&c==k.view.translate.y&&g.actions.get(k.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",h,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
 640<=e?b("",d.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="):
 null,640<=e?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="):
 null])}d=g.menus.get("language");null!=d&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=e?(f=p.addMenu("",d.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)",
-f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}l.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
-f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var m=null,p=new Menubar(g,k);g.statusContainer=
+f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),l.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}h.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
+f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,k=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var n=null,p=new Menubar(g,l);g.statusContainer=
 g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var q=g.descriptorChanged;g.descriptorChanged=function(){q.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=
-a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer=
+a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);l.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else l.removeAttribute("title")};g.setStatusText(g.editor.getStatus());l.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";l.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer=
 document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,r=document.createElement("div");r.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!=
 u){this.tabContainer.style.right="70px";var C=p.addMenu("100%",u.funct);C.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");C.style.whiteSpace="nowrap";C.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";C.style.backgroundPosition="right 6px center";C.style.backgroundRepeat="no-repeat";C.style.backgroundColor="#ffffff";C.style.paddingRight="10px";C.style.display="block";C.style.position="absolute";C.style.textDecoration="none";C.style.textDecoration="none";C.style.right=
 "0px";C.style.bottom="0px";C.style.overflow="hidden";C.style.visibility="hidden";C.style.textAlign="center";C.style.color="#000";C.style.fontSize="12px";C.style.color="#707070";C.style.width="59px";C.style.borderTop="1px solid lightgray";C.style.borderLeft="1px solid lightgray";C.style.height=parseInt(g.tabContainer.style.height)-1+"px";C.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";r.appendChild(C);u=mxUtils.bind(this,function(){C.innerHTML=Math.round(100*g.editor.graph.view.scale)+
-"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(k);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer();
+"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(l);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer();
 d();mxEvent.addListener(window,"resize",function(){d();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}};
-(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed:  / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=File was changed. Overwrite changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters:  / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
-Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,d,e){this.init(a,d,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1;
+(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed:  / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters:  / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
+Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,e){this.init(a,b,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1;
 GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;
-GraphViewer.prototype.init=function(a,d,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled=
-0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=d&&(this.xmlDocument=d.ownerDocument,this.xmlNode=d,this.xml=mxUtils.getXml(d),
-null!=a)){var b=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var b=this;this.graph.getImageFromBundles=function(a){return b.getImageUrl(a)};
-mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==d.nodeName){var e=d.getElementsByTagName("diagram");if(0<e.length){var h=this.graph.getGlobalVariable,b=this;this.graph.getGlobalVariable=function(a){var c=e[b.currentPage];return"page"==a?c.getAttribute("name")||"Page-"+(b.currentPage+1):"pagenumber"==a?b.currentPage+1:h.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length);
+GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled=
+0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=b&&(this.xmlDocument=b.ownerDocument,this.xmlNode=b,this.xml=mxUtils.getXml(b),
+null!=a)){var d=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var d=this;this.graph.getImageFromBundles=function(a){return d.getImageUrl(a)};
+mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(a){var b=e[d.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==a?d.currentPage+1:k.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length);
 this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(this.diagrams[this.currentPage]))).documentElement)};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};var f=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=c&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),c=this.xmlNode)});this.addListener("xmlNodeChanged",
-f);f();urlParams.page=b.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};b=this;this.graph.customLinkClicked=function(a){var c=!0;if("data:page/id,"==a.substring(0,13)){var d=a.indexOf(",");
-b.selectPageById(a.substring(d+1))||(c=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return c};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 h=this.getObservableParent(a),
-m=new e(mxUtils.bind(this,function(d){0<a.offsetWidth&&(m.disconnect(),b())}));m.observe(h,{attributes:!0})}else b()}};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};
+f);f();urlParams.page=d.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};d=this;this.graph.customLinkClicked=function(a){var b=!0;if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");
+d.selectPageById(a.substring(c+1))||(b=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return b};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),
+l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),d())}));l.observe(k,{attributes:!0})}else d()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};
 GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};GraphViewer.prototype.setXmlNode=function(a){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,d=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var b=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}}),h=null,m=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==h||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},h=c,window.setTimeout(function(){m=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",b),this.graph.addListener("size",
-b)):new ResizeSensor(this.graph.container,b));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,d.width+2*this.graph.border),this.updateContainerHeight(a,d.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var p=h=null,b=mxUtils.bind(this,function(){window.clearTimeout(p);m||(p=window.setTimeout(mxUtils.bind(this,
-this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",b):new ResizeSensor(this.graph.container,b))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",b);var q=mxUtils.bind(this,function(){var b=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||d.width+2*this.graph.border>a.offsetWidth||d.height+2*this.graph.border>this.graphConfig["max-height"])){var c=
-null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(d.height+2*this.graph.border));this.fitGraph(c)}else this.graph.view.setTranslate(Math.floor((this.graph.border-d.x)/this.graph.view.scale),Math.floor((this.graph.border-d.y)/this.graph.view.scale)),h=a.offsetWidth;a.style.minWidth=b});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){d=this.graph.getGraphBounds();h=null;q()}};
-GraphViewer.prototype.updateContainerWidth=function(a,d){a.style.width=d+"px"};GraphViewer.prototype.updateContainerHeight=function(a,d){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=d+"px"};
-GraphViewer.prototype.showLayers=function(a,d){var e=this.graphConfig.layers;if(null!=e||null!=d)if(e=null!=e?e.split(" "):null,null!=d||0<e.length){var b=null!=d?d.getModel():null,h=a.getModel();h.beginUpdate();try{for(var m=h.getChildCount(h.root),p=0;p<m;p++)h.setVisible(h.getChildAt(h.root,p),null!=d?b.isVisible(b.getChildAt(b.root,p)):!1);if(null==b)for(p=0;p<e.length;p++)h.setVisible(h.getChildAt(h.root,parseInt(e[p])),!0)}finally{h.endUpdate()}}};
+GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var d=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",d),this.graph.addListener("size",
+d)):new ResizeSensor(this.graph.container,d));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 p=k=null,d=mxUtils.bind(this,function(){window.clearTimeout(p);l||(p=window.setTimeout(mxUtils.bind(this,
+this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",d);var q=mxUtils.bind(this,function(){var d=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 c=
+null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(b.height+2*this.graph.border));this.fitGraph(c)}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=d});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 d=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var l=k.getChildCount(k.root),p=0;p<l;p++)k.setVisible(k.getChildAt(k.root,p),null!=b?d.isVisible(d.getChildAt(d.root,p)):!1);if(null==d)for(p=0;p<e.length;p++)k.setVisible(k.getChildAt(k.root,parseInt(e[p])),!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 d=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?d.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(d.style.marginTop=this.toolbarHeight+"px");var e=d.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 b=null,h=null,m=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),fadeThead2=null);b=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
-0);b=null;h=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";h=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),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)||(p(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
+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 d=null,k=null,l=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
+0);d=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),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)||(p(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
 "mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){p(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){p(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||p(30)}));var q=this.graph,u=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)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?m():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,k=null,r=0;r<c.length;r++){var l=c[r];if("pages"==l){k=d.ownerDocument.createElement("div");
-k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(k,70);var n=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");n.style.borderRightStyle="none";n.style.paddingLeft="0px";n.style.paddingRight="0px";e.appendChild(k);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
-1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";l=mxUtils.bind(this,function(){k.innerHTML="";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";n.style.display=k.style.display;w.style.display=k.style.display});this.addListener("graphChanged",l);l()}else if("zoom"==l)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"==l){if(this.layersEnabled){var v=this.graph.getModel(),B=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=B.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");v.addListener(mxEvent.CHANGE,function(){B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==l?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(l=this.graphConfig["toolbar-buttons"][l],
-null!=l&&a(null==l.enabled||l.enabled?l.handler:function(){},l.image,l.title,l.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(c=d.ownerDocument.createElement("div"),c.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;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c,
-70),e.appendChild(c));this.minToolbarWidth=34*f;var y=d.style.border,c=mxUtils.bind(this,function(){var a=d.getBoundingClientRect(),b=mxUtils.getScrollOrigin(document.body),b="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-b.x,top:-b.y},a={left:a.left-b.left,top:a.top-b.top,bottom:a.bottom-b.top,right:a.right-b.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,d.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"==y&&(d.style.border="1px solid #d0d0d0");document.body.appendChild(e);var c=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g),
-g=null),d.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==d||a==e||a==g)return;a=a.parentNode}c()});mxEvent.addListener(document,"mouseleave",function(a){c()})});mxEvent.addListener(d,"mouseenter",c)};
-GraphViewer.prototype.addClickHandler=function(a,d){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,b){if(null==b){var h=mxEvent.getSource(e);"a"==h.nodeName.toLowerCase()&&(b=h.getAttribute("href"))}null!=d?null==b||a.isExternalProtocol(b)||a.isBlankLink(b)||window.setTimeout(function(){d.destroy()},0):null!=b&&null==d&&a.isCustomLink(b)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(b)&&mxEvent.consume(e)}),
-mxUtils.bind(this,function(a){null!=d||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
-GraphViewer.prototype.showLightbox=function(a,d,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!=d?d: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&&
+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)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?l():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,n=null,r=0;r<c.length;r++){var h=c[r];if("pages"==h){n=b.ownerDocument.createElement("div");
+n.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(n,70);var m=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");m.style.borderRightStyle="none";m.style.paddingLeft="0px";m.style.paddingRight="0px";e.appendChild(n);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";h=mxUtils.bind(this,function(){n.innerHTML="";mxUtils.write(n,this.currentPage+1+" / "+this.diagrams.length);n.style.display=1<this.diagrams.length?"inline-block":"none";m.style.display=n.style.display;w.style.display=n.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 v=this.graph.getModel(),A=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=A.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");v.addListener(mxEvent.CHANGE,function(){A.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});A.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&&(c=b.ownerDocument.createElement("div"),c.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;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c,
+70),e.appendChild(c));this.minToolbarWidth=34*f;var y=b.style.border,c=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"==y&&(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=y)});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",c)};
+GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d){var k=mxEvent.getSource(e);"a"==k.nodeName.toLowerCase()&&(d=k.getAttribute("href"))}null!=b?null==d||a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(d)&&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&&
 (e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(a){"ready"==a.data&&a.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);a="www.draw.io";"1"==urlParams.dev&&(e.dev="1",e.drawdev=
 "1",a="test.draw.io");this.lightboxWindow=window.open("https://"+a+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()};
-GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),d=document.createElement("div");mxClient.IS_QUIRKS?(d.style.position="absolute",d.style.left=a.x+"px",d.style.top=a.y+"px",d.style.width=document.body.offsetWidth+"px",d.style.height=document.body.offsetHeight+"px"):d.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";d.style.zIndex=this.lightboxZIndex;d.style.backgroundColor="#000000";mxUtils.setOpacity(d,70);document.body.appendChild(d);
-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(){b.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,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var b=new EditorUi(new Editor(!0),document.createElement("div"),!0);b.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";b.refresh=
-function(){};var h=mxUtils.bind(this,function(a){27==a.keyCode&&b.destroy()}),m=b.destroy;b.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",h);document.body.removeChild(d);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var p=b.editor.graph,q=p.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,
-"keydown",h)):(d.style.display="none",e.style.display="none");var u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=b.createTemporaryGraph;b.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.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(p,b);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);b.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");b.chromelessToolbar.style.bottom=
-"60px";b.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(b.chromelessToolbar);b.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",b.chromelessToolbar.style.display="block",b.chromelessToolbar.style.position="absolute",
-b.chromelessToolbar.style.bottom="",b.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");b.lightboxFit();b.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(d,"click",function(){b.destroy()})}),0);return b};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 d=document.getElementsByClassName(a);a=[];for(var e=0;e<d.length;e++)a.push(d[e]);return a}for(var b=document.getElementsByTagName("*"),d=[],e=0;e<b.length;e++){var h=b[e].className;null!=h&&0<h.length&&(h=h.split(" "),0<=mxUtils.indexOf(h,a)&&d.push(b[e]))}return d};
-GraphViewer.createViewerForElement=function(a,d){var e=a.getAttribute("data-mxgraph");if(null!=e){var b=JSON.parse(e),h=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,b);null!=d&&d(e)};null!=b.url?GraphViewer.getUrl(b.url,function(a){h(a)}):h(b.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(d){}};
-GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,d,e){if(null!=GraphViewer.cachedUrls[a])d(GraphViewer.cachedUrls[a]);else{var b=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;b.open("GET",a);b.onload=function(){d(null!=b.getText?b.getText():b.responseText)};b.onerror=e;b.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},d=function(e,b){function h(){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 p(b,c){if(!b.resizedAttached)b.resizedAttached=
-new h,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 k=!1,p=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(p))};a(p);var q,t,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)k=!0,q=u,t=H;g()},A=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};A(d,"scroll",G);A(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&b()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,b=e.length;a<b;a++)d.detach(e[a]);else d.detach(e)}};
-d.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=d})();
+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(){d.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,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";d.refresh=
+function(){};var k=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),l=d.destroy;d.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 p=d.editor.graph,q=p.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 u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.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(p,d);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);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom=
+"60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(d.chromelessToolbar);d.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",d.chromelessToolbar.style.display="block",d.chromelessToolbar.style.position="absolute",
+d.chromelessToolbar.style.bottom="",d.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");d.lightboxFit();d.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(b,"click",function(){d.destroy()})}),0);return d};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 d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var k=d[e].className;null!=k&&0<k.length&&(k=k.split(" "),0<=mxUtils.indexOf(k,a)&&b.push(d[e]))}return b};
+GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),k=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){k(a)}):k(d.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 d=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=e;d.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,d){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 p(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"==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,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)n=!0,q=u,t=H;g()},B=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};B(d,"scroll",G);B(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,d=e.length;a<d;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 1a754285f..44cf04626 100644
--- a/src/main/webapp/js/atlas.min.js
+++ b/src/main/webapp/js/atlas.min.js
@@ -1,6 +1,7 @@
 //fgnass.github.com/spin.js#v2.0.0
 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
 // NOTE: Modified to support data URIs for images, ie. data:image/*
+// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break"
 (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","),
 "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","),
 "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","),
@@ -25,7 +26,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
 J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X;
@@ -663,7 +664,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
@@ -2461,13 +2462,14 @@ Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c
 Graph.prototype.zoom=function(a,c){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)};
 Graph.prototype.getTooltipForCell=function(a){var c="";if(mxUtils.isNode(a.value)){var d=a.value.getAttribute("tooltip");if(null!=d)null!=d&&this.isReplacePlaceholders(a)&&(d=this.replacePlaceholders(a,d)),c=this.sanitizeHtml(d);else{d=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&d.push("link");for(var f=0;f<a.length;f++)0>mxUtils.indexOf(d,a[f].nodeName)&&0<a[f].nodeValue.length&&b.push({name:a[f].nodeName,value:a[f].nodeValue});b.sort(function(a,b){return a.name<b.name?
 -1:a.name>b.name?1:0});for(f=0;f<b.length;f++)"link"==b[f].name&&this.isCustomLink(b[f].value)||(c+=("link"!=b[f].name?"<b>"+b[f].name+":</b> ":"")+mxUtils.htmlEntities(b[f].value)+"\n");0<c.length&&(c=c.substring(0,c.length-1),mxClient.IS_SVG&&(c='<div style="max-width:360px;">'+c+"</div>"))}}return c};Graph.prototype.stringToBytes=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=a.charCodeAt(d);return c};
-Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};
-Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";
-HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
-HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
-HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
-HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":
-IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
+Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};
+Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;
+HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";
+HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);
+HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);
+HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
+HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+
+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
 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(c){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||
@@ -3169,9 +3171,8 @@ c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f&
 "right";var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation();
 a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className=
 "geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),
-f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(b,null),a.editor.graph.openLink(a.getUrl());else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==
-f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(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;
+f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;
+(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(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"),r.setAttribute("disabled","true"),t.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),r.removeAttribute("disabled"),t.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}
 function d(){q.style.backgroundColor=q.value*r.value>MAX_AREA||0>=q.value?"red":"";r.style.backgroundColor=q.value*r.value>MAX_AREA||0>=r.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",
@@ -7163,17 +7164,18 @@ DrawioFile=function(a,e){mxEventSource.call(this);this.ui=a;this.data=e||""};mxU
 DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,e,d,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,e,d){};DrawioFile.prototype.saveFile=function(a,e,d,c){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
 DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,e,d){};DrawioFile.prototype.isMovable=function(){return!1};
 DrawioFile.prototype.move=function(a,e,d){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data};
-DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,e){var d=null!=e?e.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=d&&d.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||
-this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);
-this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)};
-DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))};
-DrawioFile.prototype.autosave=function(a,e,d,c){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<e?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=d&&d(a)}),
-mxUtils.bind(this,function(a){null!=c&&c(a)}))}else null!=d&&d(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,e){if(null!=a&&null!=e){var d=a.lastIndexOf("."),c=0<d?a.substring(d):"",d=e.lastIndexOf(".");return c===(0<d?e.substring(d):"")}return a==e};
-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,e,d,c){DrawioFile.call(this,a,e);this.title=d;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,e,d){this.saveAs(this.title,e,d)};LocalFile.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)};
+DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,d){var c=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=c&&c.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",
+this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",
+this.changeListener)};
+DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null,
+0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))};
+DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()};
+DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):
+null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))};
+DrawioFile.prototype.autosave=function(a,e,d,c){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<e?a:0;this.clearAutosave();var g=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==g&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();
+null!=d&&d(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=d&&d(null)}),a);this.autosaveThread=g};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,e){if(null!=a&&null!=e){var d=a.lastIndexOf("."),c=0<d?a.substring(d):"",d=e.lastIndexOf(".");return c===(0<d?e.substring(d):"")}return a==e};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,e,d,c){DrawioFile.call(this,a,e);this.title=d;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,e,d){this.saveAs(this.title,e,d)};LocalFile.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)};
 LocalFile.prototype.saveFile=function(a,e,d,c){this.title=a;this.updateFileData();e=this.getData();var g=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),k=mxUtils.bind(this,function(c){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,g?"image/png":"text/xml",g);else if(c.length<MAX_REQUEST_SIZE){var e=a.lastIndexOf("."),e=0<e?a.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+
 (g?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));this.setModified(!1);this.contentChanged();null!=d&&d()});g?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(a)}),c,this.ui.getCurrentFile()!=this?this.getData():null):k(e)};LocalFile.prototype.rename=function(a,e,d){this.title=a;this.descriptorChanged();null!=e&&e()};
 LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,e){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};LocalLibrary=function(a,e,d){LocalFile.call(this,a,e,d)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,e,d){DrawioFile.call(this,a,e);this.title=d};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title};
@@ -7184,7 +7186,7 @@ StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,argum
 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 c(c,q,t,m,v,x){function w(){mxEvent.addListener(u,"click",null!=x?x:function(){t!=App.MODE_GOOGLE||a.isDriveDomain()?t==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(t,b.checked);e()})):(a.setMode(t,b.checked),e()):window.location.hostname=DriveClient.prototype.newAppHostname})}var u=document.createElement("a");u.style.overflow="hidden";u.style.display=
 mxClient.IS_QUIRKS?"inline":"inline-block";u.className="geBaseButton";u.style.boxSizing="border-box";u.style.fontSize="11px";u.style.position="relative";u.style.margin="4px";u.style.padding="8px 10px 12px 10px";u.style.width="88px";u.style.height="100px";u.style.whiteSpace="nowrap";u.setAttribute("title",q);mxClient.IS_QUIRKS&&(u.style.cssFloat="left",u.style.zoom="1");var g=document.createElement("div");g.style.textOverflow="ellipsis";g.style.overflow="hidden";if(null!=c){var A=document.createElement("img");
 A.setAttribute("src",c);A.setAttribute("border","0");A.setAttribute("align","absmiddle");A.style.width="60px";A.style.height="60px";A.style.paddingBottom="6px";u.appendChild(A)}else g.style.paddingTop="5px",g.style.whiteSpace="normal",mxClient.IS_IOS?(u.style.padding="0px 10px 20px 10px",u.style.top="6px"):mxClient.IS_FF&&(g.style.paddingTop="0px",g.style.marginTop="-2px");u.appendChild(g);mxUtils.write(g,q);if(null!=v)for(c=0;c<v.length;c++)mxUtils.br(g),mxUtils.write(g,v[c]);if(null!=m&&null==a[m]){A.style.visibility=
-"hidden";mxUtils.setOpacity(g,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(u);var z=window.setTimeout(function(){null==a[m]&&(k.stop(),u.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(z),mxUtils.setOpacity(g,100),A.style.visibility="",k.stop(),w(),"drive"==m&&null!=h.parentNode&&h.parentNode.removeChild(h))}))}else w();
+"hidden";mxUtils.setOpacity(g,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(u);var k=window.setTimeout(function(){null==a[m]&&(y.stop(),u.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(k),mxUtils.setOpacity(g,100),A.style.visibility="",y.stop(),w(),"drive"==m&&null!=h.parentNode&&h.parentNode.removeChild(h))}))}else w();
 n.appendChild(u);++f>=d&&(mxUtils.br(n),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://about.draw.io/support/");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 l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("valign","bottom");l.setAttribute("src",Editor.helpImage);l.style.marginRight="2px";k.appendChild(l);mxUtils.write(k,mxResources.get("help"));g.appendChild(k)}var p=document.createElement("div");p.style.position="absolute";p.style.cursor="pointer";p.style.fontSize="12px";
 p.style.bottom="28px";p.style.color="gray";mxUtils.write(p,mxResources.get("decideLater"));a.isOfflineApp()?p.style.right="20px":(mxUtils.setPrefixedStyle(p.style,"transform","translate(-50%,0)"),p.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)p.style.marginLeft=-Math.round(p.clientWidth/2)+"px"};g.appendChild(p);mxEvent.addListener(p,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null,
@@ -7218,14 +7220,14 @@ b=document.createElement("img");b.setAttribute("src",Editor.facebookImage);b.set
 f.className="geBtn",k.appendChild(f))}b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.appendChild(b);f=mxUtils.button(mxResources.get("copy"),function(){p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?b.className="geBtn gePrimaryBtn":(k.appendChild(f),
 f.className="geBtn gePrimaryBtn",b.className="geBtn"):(k.appendChild(n),b.className="geBtn",n.className="geBtn gePrimaryBtn");c.appendChild(k);this.container=c};EmbedDialog.showPreviewOption=!0;
 var GoogleSitesDialog=function(a,e){function d(){var a=null!=B.getTitle()?B.getTitle():this.defaultFilename;if(x.checked&&""!=t.value){var c="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=a&&(c+="&title="+encodeURIComponent(a));0<C.length&&(c+="&s="+C);""!=q.value&&"0"!=q.value&&(c+="&border="+q.value);""!=h.value&&(c+="&height="+h.value);c+="&pan="+(u.checked?"1":"0");c+="&zoom="+(w.checked?"1":"0");c+="&fit="+(v.checked?"1":"0");c+="&resize="+
-(m.checked?"1":"0");c+="&x0="+Number(f.value);c+="&y0="+n;g.mathEnabled&&(c+="&math=1");A.checked?c+="&edit=_blank":z.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));b.value=c}else B.constructor==DriveFile||B.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=B.getHash().substring(1),c=B.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=a&&(c+="&title="+
+(m.checked?"1":"0");c+="&x0="+Number(f.value);c+="&y0="+n;g.mathEnabled&&(c+="&math=1");A.checked?c+="&edit=_blank":y.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));b.value=c}else B.constructor==DriveFile||B.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=B.getHash().substring(1),c=B.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=a&&(c+="&title="+
 encodeURIComponent(a)),""!=h.value&&(a=parseInt(h.value)+parseInt(f.value),c+="&height="+a),b.value=c):b.value=""}var c=document.createElement("div"),g=a.editor.graph,k=g.getGraphBounds(),l=g.view.scale,p=Math.floor(k.x/l-g.view.translate.x),n=Math.floor(k.y/l-g.view.translate.y);mxUtils.write(c,mxResources.get("googleGadget")+":");mxUtils.br(c);var b=document.createElement("input");b.setAttribute("type","text");b.style.marginBottom="8px";b.style.marginTop="2px";b.style.width="410px";c.appendChild(b);
 mxUtils.br(c);this.init=function(){b.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?b.select():document.execCommand("selectAll",!1,null)};mxUtils.write(c,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=p;c.appendChild(f);mxUtils.write(c,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/l);c.appendChild(h);mxUtils.br(c);k=document.createElement("hr");k.setAttribute("size","1");k.style.marginBottom="16px";k.style.marginTop="16px";c.appendChild(k);mxUtils.write(c,mxResources.get("publicDiagramUrl")+":");mxUtils.br(c);var t=document.createElement("input");t.setAttribute("type","text");t.setAttribute("size","28");t.style.marginBottom="8px";t.style.marginTop="2px";t.style.width="410px";t.value=e||"";
 c.appendChild(t);mxUtils.br(c);mxUtils.write(c,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","3");q.style.marginBottom="8px";q.style.marginLeft="4px";q.value="0";c.appendChild(q);mxUtils.br(c);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";c.appendChild(u);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 z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";z.setAttribute("title",window.location.href);c.appendChild(z);mxUtils.write(c,mxResources.get("edit")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";c.appendChild(A);mxUtils.write(c,
+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 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 A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";c.appendChild(A);mxUtils.write(c,
 mxResources.get("asNew")+" ");mxUtils.br(c);var m=document.createElement("input");m.setAttribute("type","checkbox");m.setAttribute("checked","checked");m.defaultChecked=!0;m.style.marginLeft="16px";c.appendChild(m);mxUtils.write(c,mxResources.get("resize")+" ");var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginLeft="8px";c.appendChild(v);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(";"),B=a.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(w,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(h,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(t,"change",d);d();
+"8px";c.appendChild(x);mxUtils.write(c,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),B=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(A,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(h,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(t,"change",d);d();
 mxEvent.addListener(b,"click",function(){b.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?b.select():document.execCommand("selectAll",!1,null)});k=document.createElement("div");k.style.paddingTop="12px";k.style.textAlign="right";l=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});l.className="geBtn gePrimaryBtn";k.appendChild(l);c.appendChild(k);this.container=c},CreateGraphDialog=function(a,e,d){var c=document.createElement("div");c.style.textAlign=
 "right";this.init=function(){var e=document.createElement("div");e.style.position="relative";e.style.border="1px solid gray";e.style.width="100%";e.style.height="360px";e.style.overflow="hidden";e.style.marginBottom="16px";mxEvent.disableContextMenu(e);c.appendChild(e);var k=new Graph(e);k.setCellsCloneable(!0);k.setPanning(!0);k.setAllowDanglingEdges(!1);k.connectionHandler.select=!1;k.view.setTranslate(20,20);k.border=20;k.panningHandler.useLeftButtonForPanning=!0;var l="curved=1;";k.cellRenderer.installCellOverlayListeners=
 function(a,b,f){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(f.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(f){b.fireEvent(new mxEventObject("pointerdown","event",f,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(f.node,"touchstart",function(f){b.fireEvent(new mxEventObject("pointerdown","event",f,"state",a))})};k.getAllConnectionConstraints=function(){return null};k.connectionHandler.marker.highlight.keepOnTop=
@@ -7239,7 +7241,7 @@ CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image
 IMAGE_PATH+"/handle-connect.png",26,26);
 var BackgroundImageDialog=function(a,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var c=document.createElement("h2");mxUtils.write(c,mxResources.get("backgroundImage"));c.style.marginTop="0px";d.appendChild(c);mxUtils.write(d,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(d);var c=a.editor.graph.backgroundImage,g=document.createElement("input");g.setAttribute("type","text");g.style.marginTop="4px";g.style.marginBottom="4px";g.style.width="350px";g.value=
 null!=c?c.src:"";var k=!1,l=function(){k||""==g.value||a.isOffline()?(p.value="",n.value=""):a.loadImage(mxUtils.trim(g.value),function(a){p.value=a.width;n.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));g.value="";p.value="";n.value=""})};this.init=function(){g.focus();if(Graph.fileSupport){g.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=d.parentNode,f=null;mxEvent.addListener(b,"dragleave",function(a){null!=
-f&&(f.parentNode.removeChild(f),f=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==f&&(!mxClient.IS_IE||10<document.documentMode)&&(f=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNode.removeChild(f),f=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,f,c,v,h){g.value=a;l()},function(){},
+f&&(f.parentNode.removeChild(f),f=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==f&&(!mxClient.IS_IE||10<document.documentMode)&&(f=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNode.removeChild(f),f=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,f,c,h,d){g.value=a;l()},function(){},
 function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(g.value=decodeURIComponent(c),l())}b.stopPropagation();b.preventDefault()}),!1)}};d.appendChild(g);mxUtils.br(d);mxUtils.br(d);mxUtils.write(d,mxResources.get("width")+":");var p=document.createElement("input");
 p.setAttribute("type","text");p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="16px";p.value=null!=c?c.width:"";d.appendChild(p);mxUtils.write(d,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="16px";n.value=null!=c?c.height:"";d.appendChild(n);c=mxUtils.button(mxResources.get("reset"),function(){g.value="";p.value="";n.value="";k=!1});mxEvent.addListener(c,"mousedown",
 function(){k=!0});mxEvent.addListener(c,"touchstart",function(){k=!0});c.className="geBtn";c.width="100";d.appendChild(c);mxUtils.br(d);mxEvent.addListener(g,"change",l);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(g.value=a.url,l()));g.focus()};c=document.createElement("div");c.style.marginTop="40px";c.style.textAlign="right";var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
@@ -7265,44 +7267,44 @@ l=[];a.editor.graph.getModel().beginUpdate();try{l=a.editor.graph.importCells(h.
 n=document.createElement("option");n.setAttribute("value","diagram");mxUtils.write(n,mxResources.get("diagram"));"plantUml"!=d&&p.appendChild(n);n=document.createElement("option");n.setAttribute("value","plantUmlSvg");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==d&&n.setAttribute("selected","selected");var b=document.createElement("option");b.setAttribute("value","plantUmlPng");mxUtils.write(b,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()&&"plantUml"==d&&(p.appendChild(n),p.appendChild(b),p.appendChild(f));var h=g();l.value=h;e.appendChild(l);this.init=function(){l.focus()};Graph.fileSupport&&(l.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),l.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){l.value=a.target.result};b.readAsText(a)}},!1));e.appendChild(p);mxEvent.addListener(p,"change",function(){var a=g();if(0==l.value.length||l.value==h)h=a,l.value=h});d=mxUtils.button(mxResources.get("close"),function(){l.value==h?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});d.className="geBtn";a.editor.cancelFirst&&e.appendChild(d);n=mxUtils.button(mxResources.get("insert"),
-function(){a.hideDialog();c(l.value,p.value)});e.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||e.appendChild(d);this.container=e},NewDialog=function(a,e,d,c,g,k,l,p,n,b,f,h,t,q,u){function w(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],m(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function z(){if(aa)d||a.hideDialog(),q(aa,Z,H.value);else if(c)d||a.hideDialog(),c(P,H.value);else{var b=H.value;null!=b&&
-0<b.length&&a.pickFolder(a.mode,function(f){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,f)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function A(a,b,f,c,h){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");F.removeAttribute("disabled");P=b;T=f;S=a;aa=c;Z=h;S.style.backgroundColor=p;S.style.border=n}function m(b,f,c,h,v,m,d,x,q){var e=document.createElement("div");e.className="geTemplate";e.style.height=
-Q+"px";e.style.width=K+"px";null!=h&&0<h.length&&e.setAttribute("title",h);if(null!=m)e.style.backgroundImage="url("+m+")",e.style.backgroundSize="contain",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",mxEvent.addListener(e,"click",function(a){A(e,null,null,b,d)}),mxEvent.addListener(e,"dblclick",function(a){z()});else if(null!=b&&0<b.length){c=q||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";e.style.backgroundImage="url("+c+")";e.style.backgroundPosition="center center";
-e.style.backgroundRepeat="no-repeat";var t=!1;mxEvent.addListener(e,"click",function(c){F.setAttribute("disabled","disabled");e.style.backgroundColor="transparent";e.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(A(e,a.getText(),f),t&&z())}))});mxEvent.addListener(e,"dblclick",function(a){t=!0})}else e.innerHTML=
-'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",v&&A(e),null!=x?mxEvent.addListener(e,"click",x):(mxEvent.addListener(e,"click",function(a){A(e)}),mxEvent.addListener(e,"dblclick",function(a){z()}));N.appendChild(e)}function v(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(w(),mxEvent.consume(a))});var a=null,f;for(f in U){var c=document.createElement("div"),h=mxResources.get(f),v=U[f];null==
+function(){a.hideDialog();c(l.value,p.value)});e.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||e.appendChild(d);this.container=e},NewDialog=function(a,e,d,c,g,k,l,p,n,b,f,h,t,q,u){function w(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],m(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function y(){if(aa)d||a.hideDialog(),q(aa,Z,F.value);else if(c)d||a.hideDialog(),c(P,F.value);else{var b=F.value;null!=b&&
+0<b.length&&a.pickFolder(a.mode,function(f){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,f)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function A(a,b,f,c,h){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");G.removeAttribute("disabled");P=b;T=f;S=a;aa=c;Z=h;S.style.backgroundColor=p;S.style.border=n}function m(b,f,c,h,v,m,d,x,e){var q=document.createElement("div");q.className="geTemplate";q.style.height=
+Q+"px";q.style.width=K+"px";null!=h&&0<h.length&&q.setAttribute("title",h);if(null!=m)q.style.backgroundImage="url("+m+")",q.style.backgroundSize="contain",q.style.backgroundPosition="center center",q.style.backgroundRepeat="no-repeat",mxEvent.addListener(q,"click",function(a){A(q,null,null,b,d)}),mxEvent.addListener(q,"dblclick",function(a){y()});else if(null!=b&&0<b.length){c=e||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";q.style.backgroundImage="url("+c+")";q.style.backgroundPosition="center center";
+q.style.backgroundRepeat="no-repeat";var t=!1;mxEvent.addListener(q,"click",function(c){G.setAttribute("disabled","disabled");q.style.backgroundColor="transparent";q.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(A(q,a.getText(),f),t&&y())}))});mxEvent.addListener(q,"dblclick",function(a){t=!0})}else q.innerHTML=
+'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",v&&A(q),null!=x?mxEvent.addListener(q,"click",x):(mxEvent.addListener(q,"click",function(a){A(q)}),mxEvent.addListener(q,"dblclick",function(a){y()}));N.appendChild(q)}function v(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(w(),mxEvent.consume(a))});var a=null,f;for(f in U){var c=document.createElement("div"),h=mxResources.get(f),v=U[f];null==
 h&&(h=f.substring(0,1).toUpperCase()+f.substring(1));18<h.length&&(h=h.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",h+" ("+v.length+")");mxUtils.write(c,c.getAttribute("title"));null!=b&&(c.style.padding=b);Y.appendChild(c);null==a&&(a=c,a.style.backgroundColor=l);(function(b,f){mxEvent.addListener(c,"click",function(){a!=f&&(a.style.backgroundColor="",a=f,
-a.style.backgroundColor=l,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],y=null,w())})})(f,c)}w()}d=null!=d?d:!0;g=null!=g?g:!1;l=null!=l?l:"#ebf2f9";p=null!=p?p:"#e6eff8";n=null!=n?n:"1px solid #ccd9ea";f=null!=f?f:EditorUi.templateFile;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 B=document.createElement("img");B.setAttribute("border","0");B.setAttribute("align","absmiddle");B.style.width=
+a.style.backgroundColor=l,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],z=null,w())})})(f,c)}w()}d=null!=d?d:!0;g=null!=g?g:!1;l=null!=l?l:"#ebf2f9";p=null!=p?p:"#e6eff8";n=null!=n?n:"1px solid #ccd9ea";f=null!=f?f:EditorUi.templateFile;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 B=document.createElement("img");B.setAttribute("border","0");B.setAttribute("align","absmiddle");B.style.width=
 "40px";B.style.height="40px";B.style.marginRight="10px";B.style.paddingBottom="4px";B.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&&C.appendChild(B);d&&mxUtils.write(C,
-(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");B=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?B=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?B=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?B=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?B=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(B=a.trello.extension);var H=document.createElement("input");H.setAttribute("value",
-a.defaultFilename+B);H.style.marginRight="20px";H.style.marginLeft="10px";H.style.width=e?"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,F=mxUtils.button(mxResources.get("create"),function(){F.setAttribute("disabled","disabled");z();F.removeAttribute("disabled")});F.className="geBtn gePrimaryBtn";if(h||t){var L=[],y=null,D=function(a){F.setAttribute("disabled",
-"disabled");for(var b=0;b<L.length;b++)L[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,B=document.createElement("div");B.style.whiteSpace="nowrap";B.style.height="30px";x.appendChild(B);var G=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;y!=O&&(O=y,w(),y=null)});L.push(G);B.appendChild(G);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==y&&(y=O);N.scrollTop=0;
-N.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(N);E=0;var f=function(a,f){b.stop();O=a;f?N.innerHTML=f:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",w())};a?t(J.value,f):h(f)};h&&(G=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),B.appendChild(G),L.push(G));if(t){G=document.createElement("span");G.style.marginLeft=
-"10px";G.innerHTML=mxResources.get("search")+":";B.appendChild(G);var J=document.createElement("input");J.style.marginRight="10px";J.style.marginLeft="10px";J.style.width="220px";mxEvent.addListener(J,"keypress",function(a){13==a.keyCode&&M(!0)});B.appendChild(J);G=mxUtils.button(mxResources.get("search"),function(){M(!0)});G.className="geBtn";B.appendChild(G)}D(0)}var T=null,P=null,S=null,aa=null,Z=null,N=document.createElement("div");N.style.border="1px solid #d3d3d3";N.style.position="absolute";
+(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");B=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?B=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?B=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?B=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?B=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(B=a.trello.extension);var F=document.createElement("input");F.setAttribute("value",
+a.defaultFilename+B);F.style.marginRight="20px";F.style.marginLeft="10px";F.style.width=e?"220px":"430px";this.init=function(){d&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?F.select():document.execCommand("selectAll",!1,null))};d&&C.appendChild(F);var C=!1,E=0,G=mxUtils.button(mxResources.get("create"),function(){G.setAttribute("disabled","disabled");y();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";if(h||t){var L=[],z=null,D=function(a){G.setAttribute("disabled",
+"disabled");for(var b=0;b<L.length;b++)L[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,B=document.createElement("div");B.style.whiteSpace="nowrap";B.style.height="30px";x.appendChild(B);var H=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;z!=O&&(O=z,w(),z=null)});L.push(H);B.appendChild(H);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==z&&(z=O);N.scrollTop=0;
+N.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(N);E=0;var f=function(a,f){b.stop();O=a;f?N.innerHTML=f:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",w())};a?t(J.value,f):h(f)};h&&(H=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),B.appendChild(H),L.push(H));if(t){H=document.createElement("span");H.style.marginLeft=
+"10px";H.innerHTML=mxResources.get("search")+":";B.appendChild(H);var J=document.createElement("input");J.style.marginRight="10px";J.style.marginLeft="10px";J.style.width="220px";mxEvent.addListener(J,"keypress",function(a){13==a.keyCode&&M(!0)});B.appendChild(J);H=mxUtils.button(mxResources.get("search"),function(){M(!0)});H.className="geBtn";B.appendChild(H)}D(0)}var T=null,P=null,S=null,aa=null,Z=null,N=document.createElement("div");N.style.border="1px solid #d3d3d3";N.style.position="absolute";
 N.style.left="160px";N.style.right="34px";C=(d?72:40)+(C?30:0);N.style.top=C+"px";N.style.bottom="68px";N.style.margin="6px 0 0 -1px";N.style.padding="6px";N.style.overflow="auto";var Y=document.createElement("div");Y.style.cssText="position:absolute;left:30px;width:128px;top:"+C+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Q=140,K=140,U={},R=1;U.basic=[{title:"blankDiagram",select:!0}];var O=U.basic;if(!e){x.appendChild(Y);x.appendChild(N);var V=!1;/^https?:\/\//.test(f)&&
 !a.isCorsEnabledForUrl(f)&&(f=PROXY_URL+"?url="+encodeURIComponent(f));mxUtils.get(f,function(a){if(!V){V=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var f=a.getAttribute("section");null==f&&(f=b.indexOf("/"),f=b.substring(0,f));b=U[f];null==b&&(R++,b=[],U[f]=b);b.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),preview:a.getAttribute("preview")})}}a=
-a.nextSibling}v()}})}mxEvent.addListener(H,"keypress",function(a){13==a.keyCode&&z()});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";C=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||g&&null==k||f.appendChild(C);e||a.isOffline()||!d||null!=c||g||(B=mxUtils.button(mxResources.get("help"),
-function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),B.className="geBtn",f.appendChild(B));e||"1"==urlParams.embed||g||(e=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()}),e.className="geBtn",f.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(f){a.openFiles(b.files,!0)});b.click()}),u.className="geBtn",f.appendChild(u));f.appendChild(F);a.editor.cancelFirst||null!=c||g&&null==k||f.appendChild(C);x.appendChild(f);
+a.nextSibling}v()}})}mxEvent.addListener(F,"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";C=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||g&&null==k||f.appendChild(C);e||a.isOffline()||!d||null!=c||g||(B=mxUtils.button(mxResources.get("help"),
+function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),B.className="geBtn",f.appendChild(B));e||"1"==urlParams.embed||g||(e=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(F.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()}),e.className="geBtn",f.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(f){a.openFiles(b.files,!0)});b.click()}),u.className="geBtn",f.appendChild(u));f.appendChild(G);a.editor.cancelFirst||null!=c||g&&null==k||f.appendChild(C);x.appendChild(f);
 this.container=x},CreateDialog=function(a,e,d,c,g,k,l,p,n,b,f,h,t,q,u){function w(b,f,c,m){function d(){mxEvent.addListener(q,"click",function(){var b=c;if(l){var f=v.value,h=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>h){var b=null!=b?b:B.value,m="";b==App.MODE_GOOGLE?m=a.drive.extension:b==App.MODE_GITHUB?m=a.gitHub.extension:b==App.MODE_TRELLO?m=a.trello.extension:b==App.MODE_DROPBOX?m=a.dropbox.extension:b==App.MODE_ONEDRIVE?m=a.oneDrive.extension:b==App.MODE_DEVICE&&(m=".xml");0<=h&&(f=f.substring(0,
-h));v.value=f+m}}z(c)})}var q=document.createElement("a");q.style.overflow="hidden";var t=document.createElement("img");t.src=b;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.className="geBaseButton";q.style.position="relative";q.style.margin="4px";q.style.padding="8px 8px 10px 8px";q.style.whiteSpace="nowrap";q.appendChild(t);mxClient.IS_QUIRKS&&(q.style.cssFloat=
+h));v.value=f+m}}y(c)})}var q=document.createElement("a");q.style.overflow="hidden";var t=document.createElement("img");t.src=b;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.className="geBaseButton";q.style.position="relative";q.style.margin="4px";q.style.padding="8px 8px 10px 8px";q.style.whiteSpace="nowrap";q.appendChild(t);mxClient.IS_QUIRKS&&(q.style.cssFloat=
 "left",q.style.zoom="1");q.style.color="gray";q.style.fontSize="11px";var u=document.createElement("div");q.appendChild(u);mxUtils.write(u,f);if(null!=m&&null==a[m]){t.style.visibility="hidden";mxUtils.setOpacity(u,10);var w=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});w.spin(q);var g=window.setTimeout(function(){null==a[m]&&(w.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
-function(){null!=a[m]&&(window.clearTimeout(g),mxUtils.setOpacity(u,100),t.style.visibility="",w.stop(),d())}))}else d();x.appendChild(q);++C==h&&(mxUtils.br(x),C=0)}function z(b){var f=v.value;if(null==b||null!=f&&0<f.length)a.hideDialog(),d(f,b)}l=null!=l?l:!0;p=null!=p?p:!0;h=null!=h?h:4;var A=document.createElement("div");null==c&&a.addLanguageMenu(A);var m=document.createElement("h2");mxUtils.write(m,g||mxResources.get("create"));m.style.marginTop="0px";m.style.marginBottom="24px";A.appendChild(m);
+function(){null!=a[m]&&(window.clearTimeout(g),mxUtils.setOpacity(u,100),t.style.visibility="",w.stop(),d())}))}else d();x.appendChild(q);++C==h&&(mxUtils.br(x),C=0)}function y(b){var f=v.value;if(null==b||null!=f&&0<f.length)a.hideDialog(),d(f,b)}l=null!=l?l:!0;p=null!=p?p:!0;h=null!=h?h:4;var A=document.createElement("div");null==c&&a.addLanguageMenu(A);var m=document.createElement("h2");mxUtils.write(m,g||mxResources.get("create"));m.style.marginTop="0px";m.style.marginBottom="24px";A.appendChild(m);
 mxUtils.write(A,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)};A.appendChild(v);null!=t&&null!=q&&"image/"==q.substring(0,6)&&(v.style.width="160px",g=null,"image/svg+xml"==q&&mxClient.IS_SVG?(g=document.createElement("div"),
 g.innerHTML=mxUtils.trim(t),t=g.getElementsByTagName("svg")[0],q=parseInt(t.getAttribute("width")),u=parseInt(t.getAttribute("height")),t.setAttribute("viewBox","0 0 "+q+" "+u),t.setAttribute("width","120px"),t.setAttribute("height","80px")):(g=document.createElement("img"),g.setAttribute("src","data:"+q+(u?";base64,":";utf8,")+t)),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%)"),
-A.appendChild(g),n&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addListener(g,"click",function(){z("_blank")})));mxUtils.br(A);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";A.appendChild(x);var B=document.createElement("select");B.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),n&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addListener(g,"click",function(){y("_blank")})));mxUtils.br(A);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";A.appendChild(x);var B=document.createElement("select");B.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")),
 B.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")),B.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")),B.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")),B.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")),B.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")),B.appendChild(g),a.mode!=App.MODE_DEVICE&&p||g.setAttribute("selected",
 "selected"),f&&w(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);p&&isLocalStorage&&"0"!=urlParams.browser&&(p=document.createElement("option"),p.setAttribute("value",App.MODE_BROWSER),mxUtils.write(p,mxResources.get("browser")),B.appendChild(p),a.mode==App.MODE_BROWSER&&p.setAttribute("selected","selected"),w(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));p=document.createElement("div");p.style.marginTop="26px";p.style.textAlign="center";
-null!=b&&(g=mxUtils.button(mxResources.get("help"),function(){a.openLink(b)}),g.className="geBtn",p.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){null!=c?c():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});g.className="geBtn";a.editor.cancelFirst&&p.appendChild(g);null==c&&(t=mxUtils.button(mxResources.get("decideLater"),function(){z(null)}),t.className="geBtn",p.appendChild(t));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"),
-function(){z("_blank")}),n.className="geBtn",p.appendChild(n));mxClient.IS_IOS||(k=mxUtils.button(k||mxResources.get("create"),function(){z(f?"download":App.MODE_DEVICE)}),k.className="geBtn gePrimaryBtn",p.appendChild(k));a.editor.cancelFirst||p.appendChild(g);mxEvent.addListener(v,"keypress",function(b){13==b.keyCode?z(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});A.appendChild(p);this.container=A},PopupDialog=function(a,e,d,c,g){g=null!=g?g:!0;var k=document.createElement("div");
+null!=b&&(g=mxUtils.button(mxResources.get("help"),function(){a.openLink(b)}),g.className="geBtn",p.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){null!=c?c():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});g.className="geBtn";a.editor.cancelFirst&&p.appendChild(g);null==c&&(t=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),t.className="geBtn",p.appendChild(t));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"),
+function(){y("_blank")}),n.className="geBtn",p.appendChild(n));mxClient.IS_IOS||(k=mxUtils.button(k||mxResources.get("create"),function(){y(f?"download":App.MODE_DEVICE)}),k.className="geBtn gePrimaryBtn",p.appendChild(k));a.editor.cancelFirst||p.appendChild(g);mxEvent.addListener(v,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});A.appendChild(p);this.container=A},PopupDialog=function(a,e,d,c,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 l=mxUtils.button(mxResources.get("openInThisWindow"),function(){g&&a.hideDialog();null!=c&&c()});l.className="geBtn";l.style.marginBottom="8px";l.style.width="280px";k.appendChild(l);mxUtils.br(k);var p=mxUtils.button(mxResources.get("openInNewWindow"),function(){g&&a.hideDialog();null!=d&&d();a.openLink(e,null,!0)});p.className="geBtn gePrimaryBtn";p.style.width=l.style.width;k.appendChild(p);
 mxUtils.br(k);mxUtils.br(k);mxUtils.write(k,mxResources.get("allowPopups"));this.container=k},ImageDialog=function(a,e,d,c,g,k){k=null!=k?k:!0;var l=a.editor.graph,p=document.createElement("div");mxUtils.write(p,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 n=document.createElement("input");
 n.setAttribute("value",d);n.setAttribute("type","text");n.setAttribute("spellcheck","false");n.setAttribute("autocorrect","off");n.setAttribute("autocomplete","off");n.setAttribute("autocapitalize","off");n.style.marginTop="6px";n.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";d=document.createElement("div");
-d.setAttribute("title",mxResources.get("reset"));d.style.position="relative";d.style.left="-16px";d.style.width="12px";d.style.height="14px";d.style.cursor="pointer";d.style.display=mxClient.IS_VML?"inline":"inline-block";d.style.top=(mxClient.IS_VML?0:3)+"px";d.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(d,"click",function(){n.value="";n.focus()});e.appendChild(n);e.appendChild(d);p.appendChild(e);var b=function(b,f,h,d){var e="data:"==b.substring(0,5);!a.isOffline()||
-e&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(m){a.spinner.stop();a.hideDialog();var v=!1===d?1:null!=f&&null!=h?Math.max(f/m.width,h/m.height):Math.min(1,Math.min(520/m.width,520/m.height));k&&(b=a.convertDataUri(b));c(b,Math.round(Number(m.width)*v),Math.round(Number(m.height)*v))},function(){a.spinner.stop();c(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(),
+d.setAttribute("title",mxResources.get("reset"));d.style.position="relative";d.style.left="-16px";d.style.width="12px";d.style.height="14px";d.style.cursor="pointer";d.style.display=mxClient.IS_VML?"inline":"inline-block";d.style.top=(mxClient.IS_VML?0:3)+"px";d.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(d,"click",function(){n.value="";n.focus()});e.appendChild(n);e.appendChild(d);p.appendChild(e);var b=function(b,f,h,d){var q="data:"==b.substring(0,5);!a.isOffline()||
+q&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(m){a.spinner.stop();a.hideDialog();var v=!1===d?1:null!=f&&null!=h?Math.max(f/m.width,h/m.height):Math.min(1,Math.min(520/m.width,520/m.height));k&&(b=a.convertDataUri(b));c(b,Math.round(Number(m.width)*v),Math.round(Number(m.height)*v))},function(){a.spinner.stop();c(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(),
 c(b)):(b=a.convertDataUri(b),f=null==f?120:f,h=null==h?100:h,a.hideDialog(),c(b,f,h))},f=function(f,h){if(null!=f){var d=g?null:l.getModel().getGeometry(l.getSelectionCell());null!=d?b(f,d.width,d.height,h):b(f,null,null,h)}else a.hideDialog(),c(null)};this.init=function(){n.focus();if(Graph.fileSupport){n.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=p.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(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,h,d,e,q,t){f(a,t)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=
+a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,h,d,q,e,t){f(a,t)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=
 0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var h=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(h)&&f(decodeURIComponent(h))}b.stopPropagation();b.preventDefault()}),!1)}};d=document.createElement("div");d.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";d.style.textAlign="right";e=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});e.className="geBtn";
 a.editor.cancelFirst&&d.appendChild(e);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(n.value=a.url));n.focus()};if(Graph.fileSupport){var h=document.createElement("input");h.setAttribute("multiple","multiple");h.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(h,"change",function(b){a.importFiles(h.files,0,0,a.maxImageSize,function(a,b,c,h,m,v){f(a)},
 function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var t=mxUtils.button(mxResources.get("open"),function(){h.click()});t.className="geBtn";d.appendChild(t)}}document.createElement("canvas").getContext&&"data:image/"==n.value.substring(0,11)&&"data:image/svg"!=n.value.substring(0,14)&&(t=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,n.value,function(a){n.value=a});a.showDialog(b.container,200,185,!0,!0);
@@ -7310,21 +7312,21 @@ b.init()}),t.className="geBtn",d.appendChild(t));"undefined"!=typeof google&&"un
 "geBtn",d.appendChild(t),null!=a.drive&&"1"==urlParams.photos&&(t=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)}))}),t.className="geBtn",d.appendChild(t)));mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&f(n.value)});t=mxUtils.button(mxResources.get("apply"),function(){f(n.value)});t.className="geBtn gePrimaryBtn";d.appendChild(t);a.editor.cancelFirst||d.appendChild(e);Graph.fileSupport&&(d.style.marginTop="120px",p.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",p.style.backgroundPosition=
 "center 65%",p.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")),p.appendChild(e));p.appendChild(d);this.container=p},LinkDialog=function(a,e,d,c,g){function k(a,b,f){f=mxUtils.button("",f);f.className="geBtn";f.setAttribute("title",b);b=document.createElement("img");b.style.height="26px";
-b.style.width="26px";b.setAttribute("src",a);f.style.minWidth="42px";f.style.verticalAlign="middle";f.appendChild(b);z.appendChild(f)}var l=document.createElement("div");mxUtils.write(l,mxResources.get("editLink")+":");var p=document.createElement("div");p.className="geTitle";p.style.backgroundColor="transparent";p.style.borderColor="transparent";p.style.whiteSpace="nowrap";p.style.textOverflow="clip";p.style.cursor="default";mxClient.IS_VML||(p.style.paddingRight="20px");var n=document.createElement("input");
+b.style.width="26px";b.setAttribute("src",a);f.style.minWidth="42px";f.style.verticalAlign="middle";f.appendChild(b);y.appendChild(f)}var l=document.createElement("div");mxUtils.write(l,mxResources.get("editLink")+":");var p=document.createElement("div");p.className="geTitle";p.style.backgroundColor="transparent";p.style.borderColor="transparent";p.style.whiteSpace="nowrap";p.style.textOverflow="clip";p.style.cursor="default";mxClient.IS_VML||(p.style.paddingRight="20px");var n=document.createElement("input");
 n.setAttribute("placeholder",mxResources.get("dragUrlsHere"));n.setAttribute("type","text");n.style.marginTop="6px";n.style.width="440px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";var b=document.createElement("div");b.setAttribute("title",mxResources.get("reset"));b.style.position="relative";b.style.left="-16px";b.style.width="12px";b.style.height="14px";b.style.cursor="pointer";
 b.style.display=mxClient.IS_VML?"inline":"inline-block";b.style.top=(mxClient.IS_VML?0:3)+"px";b.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(b,"click",function(){n.value="";n.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 t=document.createElement("select");t.style.width="420px";if(g&&null!=a.pages){null!=e&&"data:page/id,"==e.substring(0,13)?(h.setAttribute("checked","checked"),h.defaultChecked=!0):(n.setAttribute("value",e),f.setAttribute("checked","checked"),f.defaultChecked=!0);n.style.width="420px";p.appendChild(f);p.appendChild(n);p.appendChild(b);mxUtils.br(p);p.appendChild(h);g=!1;for(b=0;b<a.pages.length;b++){var q=
 document.createElement("option");mxUtils.write(q,a.pages[b].getName()||mxResources.get("pageWithNumber",[b+1]));q.setAttribute("value","data:page/id,"+a.pages[b].getId());e==q.getAttribute("value")&&(q.setAttribute("selected","selected"),g=!0);t.appendChild(q)}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");t.appendChild(u);mxEvent.addListener(t,
 "change",function(){null==u.parentNode||u.selected||u.parentNode.removeChild(u)})}p.appendChild(t)}else n.setAttribute("value",e),p.appendChild(n),p.appendChild(b);l.appendChild(p);var w=mxUtils.button(d,function(){a.hideDialog();c(h.checked?"pageNotFound"!==t.value?t.value:e:n.value,LinkDialog.selectedDocs)});w.style.verticalAlign="middle";w.className="geBtn gePrimaryBtn";this.init=function(){h.checked?t.focus():(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?
 n.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(t,"focus",function(){f.removeAttribute("checked");h.setAttribute("checked","checked");h.checked=!0});mxEvent.addListener(n,"focus",function(){h.removeAttribute("checked");f.setAttribute("checked","checked");f.checked=!0});if(Graph.fileSupport){var b=l.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(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.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")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),f.setAttribute("checked","checked"),f.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var z=document.createElement("div");
-z.style.marginTop="20px";z.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&z.appendChild(d);p=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});p.style.verticalAlign="middle";p.className="geBtn";z.appendChild(p);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(p.style.display="none");LinkDialog.selectedDocs=null;LinkDialog.filePicked=
+mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.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")&&(n.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);p=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});p.style.verticalAlign="middle";p.className="geBtn";y.appendChild(p);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(p.style.display="none");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);n.value=b;n.focus()}else LinkDialog.selectedDocs=null;n.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 b=gapi.auth.getToken().access_token,f=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),
 c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),h=(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(f).addView(c).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&&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&&k(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){n.value=a[0].link;n.focus()}})});null!=
 a.oneDrive&&k(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){n.value=b.value[0].webUrl;n.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 b=a[0],f=a[1],c=a[2];a=a.slice(3,a.length).join("/");n.value="https://github.com/"+b+"/"+f+"/blob/"+c+"/"+a;n.focus()}})});mxEvent.addListener(n,"keypress",function(b){13==b.keyCode&&(a.hideDialog(),
-c(h.checked?t.value:n.value,LinkDialog.selectedDocs))});z.appendChild(w);a.editor.cancelFirst||z.appendChild(d);l.appendChild(z);this.container=l},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")):
+c(h.checked?t.value:n.value,LinkDialog.selectedDocs))});y.appendChild(w);a.editor.cancelFirst||y.appendChild(d);l.appendChild(y);this.container=l},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(c){"A"!=mxEvent.getSource(c).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 c=document.createElement("input");
 c.setAttribute("type","text");c.style.marginTop="6px";c.style.width="600px";var g=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(l.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)+
@@ -7334,36 +7336,36 @@ mxEvent.addListener(c,"change",function(){0<c.value.length&&0<k.test(c.value)?g.
 e.appendChild(n);d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right";p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst?(d.appendChild(p),d.appendChild(g)):(d.appendChild(g),d.appendChild(p));e.appendChild(d);this.container=e};FeedbackDialog.maxAttachmentSize=1E6;
 var RevisionDialog=function(a,e,d){var c=document.createElement("div"),g=document.createElement("h3");g.style.marginTop="0px";mxUtils.write(g,mxResources.get("revisionHistory"));c.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.width="170px";k.style.height="378px";c.appendChild(k);var l=document.createElement("div");l.style.position="absolute";l.style.border="1px solid lightGray";l.style.left="199px";l.style.width="470px";l.style.height=
 "376px";l.style.overflow="hidden";mxEvent.disableContextMenu(l);c.appendChild(l);var p=new Graph(l);p.setEnabled(!1);p.setPanning(!0);p.panningHandler.ignoreCell=!0;p.panningHandler.useLeftButtonForPanning=!0;p.minFitScale=null;p.maxFitScale=null;p.centerZoom=!0;var n=0,b=null,f=0,h=p.getGlobalVariable;p.getGlobalVariable=function(a){return"page"==a&&null!=b&&null!=b[f]?b[f].getAttribute("name"):"pagenumber"==a?f+1:h.apply(this,arguments)};p.getLinkForCell=function(){return null};Editor.MathJaxRender&&
-p.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,f){a.editor.graph.mathEnabled&&Editor.MathJaxRender(p.container)}));var t=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%"}),q=a.getCurrentFile(),u=null,w=null,z=null,A=null,m=mxUtils.button("",function(){null!=z&&p.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!=z&&p.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 x=mxUtils.button("",function(){null!=z&&(p.maxFitScale=8,p.fit(8),p.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!=z&&(p.zoomActual(),p.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 B=
-document.createElement("div");B.style.position="absolute";B.style.textAlign="right";B.style.color="gray";B.style.marginTop="10px";B.style.backgroundColor="transparent";B.style.top="440px";B.style.right="32px";B.style.maxWidth="380px";B.style.cursor="default";var H=mxUtils.button(mxResources.get("download"),function(){if(null!=z){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,f=mxUtils.getXml(z.documentElement);a.isLocalFileSave()?a.saveLocalFile(f,b,"text/xml"):
-(f="undefined"===typeof pako?"&xml="+encodeURIComponent(f):"&data="+encodeURIComponent(a.editor.graph.compress(f)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+f)).simulate(document,"_blank"))}});H.className="geBtn";H.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=z&&null!=A&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(A):a.spinner.spin(document.body,mxResources.get("restoring"))&&q.save(!0,function(b){a.spinner.stop();
-a.replaceFileData(A);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 F=document.createElement("select");F.setAttribute("disabled","disabled");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign="bottom";F.style.marginRight="6px";F.style.display="none";var L=null;mxEvent.addListener(F,"change",function(a){null!=
-L&&(L(a),mxEvent.consume(a))});var y=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=z&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(z.documentElement)),window.openWindow(a.getUrl()))});y.className="geBtn";y.setAttribute("disabled","disabled");null!=d&&(y.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled",
-"disabled");null!=d&&(D.style.display="none",E.className="geBtn gePrimaryBtn");g=document.createElement("div");g.style.position="absolute";g.style.top="482px";g.style.width="640px";g.style.textAlign="right";var G=document.createElement("div");G.className="geToolbarContainer";G.style.backgroundColor="transparent";G.style.padding="2px";G.style.border="none";G.style.left="199px";G.style.top="442px";var M=null;if(null!=e&&0<e.length){l.style.cursor="move";var J=document.createElement("table");J.style.border=
+p.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,f){a.editor.graph.mathEnabled&&Editor.MathJaxRender(p.container)}));var t=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%"}),q=a.getCurrentFile(),u=null,w=null,y=null,A=null,m=mxUtils.button("",function(){null!=y&&p.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&&p.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 x=mxUtils.button("",function(){null!=y&&(p.maxFitScale=8,p.fit(8),p.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&&(p.zoomActual(),p.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 B=
+document.createElement("div");B.style.position="absolute";B.style.textAlign="right";B.style.color="gray";B.style.marginTop="10px";B.style.backgroundColor="transparent";B.style.top="440px";B.style.right="32px";B.style.maxWidth="380px";B.style.cursor="default";var F=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,f=mxUtils.getXml(y.documentElement);a.isLocalFileSave()?a.saveLocalFile(f,b,"text/xml"):
+(f="undefined"===typeof pako?"&xml="+encodeURIComponent(f):"&data="+encodeURIComponent(a.editor.graph.compress(f)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+f)).simulate(document,"_blank"))}});F.className="geBtn";F.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=A&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(A):a.spinner.spin(document.body,mxResources.get("restoring"))&&q.save(!0,function(b){a.spinner.stop();
+a.replaceFileData(A);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 G=document.createElement("select");G.setAttribute("disabled","disabled");G.style.maxWidth="80px";G.style.position="relative";G.style.top="-2px";G.style.verticalAlign="bottom";G.style.marginRight="6px";G.style.display="none";var L=null;mxEvent.addListener(G,"change",function(a){null!=
+L&&(L(a),mxEvent.consume(a))});var z=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()))});z.className="geBtn";z.setAttribute("disabled","disabled");null!=d&&(z.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled",
+"disabled");null!=d&&(D.style.display="none",E.className="geBtn gePrimaryBtn");g=document.createElement("div");g.style.position="absolute";g.style.top="482px";g.style.width="640px";g.style.textAlign="right";var H=document.createElement("div");H.className="geToolbarContainer";H.style.backgroundColor="transparent";H.style.padding="2px";H.style.border="none";H.style.left="199px";H.style.top="442px";var M=null;if(null!=e&&0<e.length){l.style.cursor="move";var J=document.createElement("table");J.style.border=
 "1px solid lightGray";J.style.borderCollapse="collapse";J.style.borderSpacing="0px";J.style.width="100%";var T=document.createElement("tbody"),P=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(n=mxUtils.indexOf(a.pages,a.currentPage));for(var S=e.length-1;0<=S;S--){var aa=function(c){var h=new Date(c.modifiedDate),d=null;if(0<=h.getTime()){var g=function(c){t.stop();var e=mxUtils.parseXml(c),u=a.editor.extractGraphModel(e.documentElement,!0);if(null!=u){var w=function(b){null!=b&&(b=
-g(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},g=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";l.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,p.getModel());p.maxFitScale=1;p.fit(8);p.center();return a};F.style.display="none";F.innerHTML="";z=e;A=c;b=parseSelectFunction=null;f=0;if("mxfile"==u.nodeName){e=u.getElementsByTagName("diagram");b=[];for(c=0;c<e.length;c++)b.push(e[c]);
-f=Math.min(n,b.length-1);0<b.length&&w(b[f]);if(1<b.length)for(F.removeAttribute("disabled"),F.style.display="",c=0;c<b.length;c++)e=document.createElement("option"),mxUtils.write(e,b[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),e.setAttribute("value",c),c==f&&e.setAttribute("selected","selected"),F.appendChild(e);L=function(){f=n=parseInt(F.value);w(b[n])}}else g(u);B.innerHTML="";mxUtils.write(B,h.toLocaleDateString()+" "+h.toLocaleTimeString());B.setAttribute("title",d.getAttribute("title"));
-m.removeAttribute("disabled");v.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=q&&q.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),H.removeAttribute("disabled"),D.removeAttribute("disabled"),y.removeAttribute("disabled"));mxUtils.setOpacity(m,60);mxUtils.setOpacity(v,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else F.style.display="none",F.innerHTML="",B.innerHTML="",mxUtils.write(B,mxResources.get("errorLoadingFile"))},
+g(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},g=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";l.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,p.getModel());p.maxFitScale=1;p.fit(8);p.center();return a};G.style.display="none";G.innerHTML="";y=e;A=c;b=parseSelectFunction=null;f=0;if("mxfile"==u.nodeName){e=u.getElementsByTagName("diagram");b=[];for(c=0;c<e.length;c++)b.push(e[c]);
+f=Math.min(n,b.length-1);0<b.length&&w(b[f]);if(1<b.length)for(G.removeAttribute("disabled"),G.style.display="",c=0;c<b.length;c++)e=document.createElement("option"),mxUtils.write(e,b[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),e.setAttribute("value",c),c==f&&e.setAttribute("selected","selected"),G.appendChild(e);L=function(){f=n=parseInt(G.value);w(b[n])}}else g(u);B.innerHTML="";mxUtils.write(B,h.toLocaleDateString()+" "+h.toLocaleTimeString());B.setAttribute("title",d.getAttribute("title"));
+m.removeAttribute("disabled");v.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=q&&q.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),F.removeAttribute("disabled"),D.removeAttribute("disabled"),z.removeAttribute("disabled"));mxUtils.setOpacity(m,60);mxUtils.setOpacity(v,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else G.style.display="none",G.innerHTML="",B.innerHTML="",mxUtils.write(B,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";c==e[e.length-1]?mxUtils.write(k,mxResources.get("current")):h.toDateString()===P?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(c.fileSize))+
-(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(d,"click",function(a){w!=c&&(t.stop(),null!=u&&(u.style.backgroundColor=""),w=c,u=d,u.style.backgroundColor="#ebf2f9",A=z=null,B.removeAttribute("title"),B.innerHTML=mxResources.get("loading")+"...",l.style.backgroundColor="#ffffff",p.getModel().clear(),E.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"),C.setAttribute("disabled",
-"disabled"),x.setAttribute("disabled","disabled"),y.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),mxUtils.setOpacity(m,20),mxUtils.setOpacity(v,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),t.spin(l),c.getXml(function(a){w==c&&g(a)},function(a){t.stop();F.style.display="none";F.innerHTML="";B.innerHTML="";mxUtils.write(B,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(d,"dblclick",function(a){D.click();
-window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(d)}return d}(e[S]);null!=aa&&S==e.length-1&&(M=aa)}J.appendChild(T);k.appendChild(J)}else null==q||null==a.drive&&q.constructor==window.DriveFile||null==a.dropbox&&q.constructor==window.DropboxFile?(l.style.display="none",G.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(l.style.display="none",G.style.display="none",mxUtils.write(k,
-mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn";G.appendChild(F);G.appendChild(m);G.appendChild(v);G.appendChild(C);G.appendChild(x);a.editor.cancelFirst?(g.appendChild(k),g.appendChild(H),g.appendChild(y),g.appendChild(E),g.appendChild(D)):(g.appendChild(H),g.appendChild(y),g.appendChild(E),g.appendChild(D),g.appendChild(k));c.appendChild(g);c.appendChild(G);c.appendChild(B);this.container=
+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(d,"click",function(a){w!=c&&(t.stop(),null!=u&&(u.style.backgroundColor=""),w=c,u=d,u.style.backgroundColor="#ebf2f9",A=y=null,B.removeAttribute("title"),B.innerHTML=mxResources.get("loading")+"...",l.style.backgroundColor="#ffffff",p.getModel().clear(),E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"),C.setAttribute("disabled",
+"disabled"),x.setAttribute("disabled","disabled"),z.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),mxUtils.setOpacity(m,20),mxUtils.setOpacity(v,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),t.spin(l),c.getXml(function(a){w==c&&g(a)},function(a){t.stop();G.style.display="none";G.innerHTML="";B.innerHTML="";mxUtils.write(B,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(d,"dblclick",function(a){D.click();
+window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(d)}return d}(e[S]);null!=aa&&S==e.length-1&&(M=aa)}J.appendChild(T);k.appendChild(J)}else null==q||null==a.drive&&q.constructor==window.DriveFile||null==a.dropbox&&q.constructor==window.DropboxFile?(l.style.display="none",H.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(l.style.display="none",H.style.display="none",mxUtils.write(k,
+mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn";H.appendChild(G);H.appendChild(m);H.appendChild(v);H.appendChild(C);H.appendChild(x);a.editor.cancelFirst?(g.appendChild(k),g.appendChild(F),g.appendChild(z),g.appendChild(E),g.appendChild(D)):(g.appendChild(F),g.appendChild(z),g.appendChild(E),g.appendChild(D),g.appendChild(k));c.appendChild(g);c.appendChild(H);c.appendChild(B);this.container=
 c},DraftDialog=function(a,e,d,c,g,k,l,p){var n=document.createElement("div"),b=document.createElement("div");b.style.marginTop="0px";b.style.whiteSpace="nowrap";b.style.overflow="auto";mxUtils.write(b,e);n.appendChild(b);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);n.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 t=a.editor.extractGraphModel(e.documentElement,!0),q=0,u=null,w=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a&&null!=u&&null!=u[q]?u[q].getAttribute("name"):"pagenumber"==a?q+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);b=mxUtils.button("",function(){h.maxFitScale=8;h.fit(8);h.center()});b.className="geSprite geSprite-fit";b.setAttribute("title",
-mxResources.get("fit"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);var z=mxUtils.button("",function(){h.zoomActual();h.center()});z.className="geSprite geSprite-actualsize";z.setAttribute("title",mxResources.get("actualSize"));z.style.outline="none";z.style.border="none";z.style.margin="2px";mxUtils.setOpacity(z,60);g=mxUtils.button(l||mxResources.get("discard"),g);g.className="geBtn";var A=document.createElement("select");A.style.maxWidth="80px";A.style.position=
+mxResources.get("fit"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,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(l||mxResources.get("discard"),g);g.className="geBtn";var A=document.createElement("select");A.style.maxWidth="80px";A.style.position=
 "relative";A.style.top="-2px";A.style.verticalAlign="bottom";A.style.marginRight="6px";A.style.display="none";c=mxUtils.button(k||mxResources.get("edit"),c);c.className="geBtn gePrimaryBtn";k=document.createElement("div");k.style.position="absolute";k.style.bottom="30px";k.style.width="640px";k.style.textAlign="right";l=document.createElement("div");l.className="geToolbarContainer";l.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";f.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,h.getModel());h.maxFitScale=1;h.fit(8);h.center()}}function c(f){null!=f&&(f=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(f))).documentElement));return f}mxEvent.addListener(A,"change",function(a){q=parseInt(A.value);c(u[q]);mxEvent.consume(a)});if("mxfile"==t.nodeName){var d=t.getElementsByTagName("diagram");
-u=[];for(var e=0;e<d.length;e++)u.push(d[e]);0<u.length&&c(u[q]);if(1<u.length)for(A.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==q&&d.setAttribute("selected","selected"),A.appendChild(d)}else b(t)};l.appendChild(A);l.appendChild(e);l.appendChild(d);l.appendChild(z);l.appendChild(b);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.className=
+u=[];for(var e=0;e<d.length;e++)u.push(d[e]);0<u.length&&c(u[q]);if(1<u.length)for(A.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==q&&d.setAttribute("selected","selected"),A.appendChild(d)}else b(t)};l.appendChild(A);l.appendChild(e);l.appendChild(d);l.appendChild(y);l.appendChild(b);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.className=
 "geBtn";p=null!=p?mxUtils.button(mxResources.get("ignore"),p):null;null!=p&&(p.className="geBtn");a.editor.cancelFirst?(k.appendChild(e),null!=p&&k.appendChild(p),k.appendChild(g),k.appendChild(c)):(k.appendChild(c),k.appendChild(g),null!=p&&k.appendChild(p),k.appendChild(e));n.appendChild(k);n.appendChild(l);this.container=n},FindWindow=function(a,e,d,c,g){function k(a,b,f){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var c=0;c<b.length;c++)if("label"!=b[c].nodeName){var h=
 mxUtils.trim(b[c].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&h.substring(0,f.length)===f||null!=a&&a.test(h))return!0}}return!1}function l(){var a=n.model.getDescendants(n.model.getRoot()),c=t.value.toLowerCase(),h=q.checked?new RegExp(c):null,v=null;b!=c&&(b=c,f=null);var d=null==f;if(0<c.length)for(var e=0;e<a.length;e++){var w=n.view.getState(a[e]);if(null!=w&&null!=w.cell.value&&(d||null==v)&&(n.model.isVertex(w.cell)||n.model.isEdge(w.cell))&&(n.isHtmlLabel(w.cell)?
 (u.innerHTML=n.getLabel(w.cell),label=mxUtils.extractTextWithWhitespace([u])):label=n.getLabel(w.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==h&&(label.substring(0,c.length)===c||k(h,w.cell,c))||null!=h&&(h.test(label)||k(h,w.cell,c))))if(d){v=w;break}else null==v&&(v=w);d=d||w==f}null!=v?(f=v,n.scrollCellToVisible(f.cell),n.isEnabled()?n.setSelectionCell(f.cell):n.highlightCell(f.cell)):n.isEnabled()&&n.clearSelection();return 0==c.length||null!=v}
 var p=a.actions.get("find"),n=a.editor.graph,b=null,f=null,h=document.createElement("div");h.style.userSelect="none";h.style.overflow="hidden";h.style.padding="10px";h.style.height="100%";var t=document.createElement("input");t.setAttribute("placeholder",mxResources.get("find"));t.setAttribute("type","text");t.style.marginTop="4px";t.style.marginBottom="6px";t.style.width="200px";t.style.fontSize="12px";t.style.borderRadius="4px";t.style.padding="6px";h.appendChild(t);mxUtils.br(h);var q=document.createElement("input");
 q.setAttribute("type","checkbox");q.style.marginRight="4px";h.appendChild(q);mxUtils.write(h,mxResources.get("regularExpression"));var u=document.createElement("div");mxUtils.br(h);var w=mxUtils.button(mxResources.get("reset"),function(){t.value="";t.style.backgroundColor="";b=f=null;t.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{t.style.backgroundColor=
-l()?"":"#ffcfcf"}catch(z){a.handleError(z)}});w.setAttribute("title",mxResources.get("find")+" (Enter)");w.style.marginTop="6px";w.className="geBtn gePrimaryBtn";h.appendChild(w);mxEvent.addListener(t,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)p.funct();else if(b!=t.value.toLowerCase()||13==a.keyCode)try{t.style.backgroundColor=l()?"":"#ffcfcf"}catch(A){t.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(h,"keydown",function(b){70==b.keyCode&&
+l()?"":"#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(t,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)p.funct();else if(b!=t.value.toLowerCase()||13==a.keyCode)try{t.style.backgroundColor=l()?"":"#ffcfcf"}catch(A){t.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(h,"keydown",function(b){70==b.keyCode&&
 a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(p.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),h,e,d,c,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.isVisible()?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)):n.container.focus()}))},
 TagsWindow=function(a,e,d,c,g){var k=a.editor.graph,l="tags",p=document.createElement("div");p.style.userSelect="none";p.style.overflow="hidden";p.style.padding="10px";p.style.height="100%";var n=document.createElement("input");n.setAttribute("placeholder",mxResources.get("allTags"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.width="260px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";p.appendChild(n);if(!a.isOffline()||mxClient.IS_CHROMEAPP){n.style.width=
 "240px";var b=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");b.firstChild.style.marginBottom="6px";b.style.marginLeft="6px";p.appendChild(b)}mxEvent.addListener(n,"dblclick",function(){var b=new FilenameDialog(a,l,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(l=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});n.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(p);
@@ -7381,9 +7383,9 @@ mxUtils.write(c," "+b.title);f.appendChild(c);var d=function(a){if(null==a||"INP
 b.image+'"/>':null==b.desc&&(h.style.padding="20px",h.style.color="rgb(179, 179, 179)",mxUtils.write(h,mxResources.get("noPreview")));null!=t&&(t.style.backgroundColor="");t=c;t.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(c,"click",d);mxEvent.addListener(c,"dblclick",function(a){m.checked=!m.checked;mxEvent.consume(a)});q.push(function(){return m.checked?b.id:null});0==k&&0==v&&d()})(b.entries[v])})(d[k]);c.style.padding="30px";c.appendChild(n);
 c.appendChild(f);c.appendChild(h);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=n.style.width,d.style.paddingTop="12px");var w=document.createElement("input");w.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)n=document.createElement("span"),
 n.style.paddingRight="20px",n.appendChild(w),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),w.checked=!0,w.defaultChecked=!0,mxEvent.addListener(n,"click",function(a){mxEvent.getSource(a)!=w&&(w.checked=!w.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(n.style.position="relative",n.style.top="-6px"),d.appendChild(n);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=
-[],f=0;f<q.length;f++){var c=q[f].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(b.join(";"),w.checked,!0)});e.className="geBtn gePrimaryBtn"}else{var z=document.createElement("table"),n=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";p=document.createElement("tr");z.style.width="100%";e=document.createElement("td");var g=document.createElement("td"),l=document.createElement("td"),A=mxUtils.bind(this,function(b,f,c){var h=document.createElement("input");
-h.type="checkbox";z.appendChild(h);h.checked=a.sidebar.isEntryVisible(c);var v=document.createElement("span");mxUtils.write(v,f);f=document.createElement("div");f.style.display="block";f.appendChild(h);f.appendChild(v);mxEvent.addListener(v,"click",function(a){h.checked=!h.checked;mxEvent.consume(a)});b.appendChild(f);return function(){return h.checked?c:null}});p.appendChild(e);p.appendChild(g);p.appendChild(l);n.appendChild(p);z.appendChild(n);for(var q=[],m=0,k=0;k<d.length;k++)for(n=0;n<d[k].entries.length;n++)m++;
-for(var v=[e,g,l],x=0,k=0;k<d.length;k++)(function(a){for(var b=0;b<a.entries.length;b++){var f=a.entries[b];q.push(A(v[Math.floor(x/(m/3))],f.title,f.id));x++}})(d[k]);c.appendChild(z);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";w=document.createElement("input");isLocalStorage&&(w.setAttribute("type","checkbox"),w.checked=!0,w.defaultChecked=!0,d.appendChild(w),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),d.appendChild(n),
+[],f=0;f<q.length;f++){var c=q[f].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(b.join(";"),w.checked,!0)});e.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),n=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";p=document.createElement("tr");y.style.width="100%";e=document.createElement("td");var g=document.createElement("td"),l=document.createElement("td"),A=mxUtils.bind(this,function(b,f,c){var h=document.createElement("input");
+h.type="checkbox";y.appendChild(h);h.checked=a.sidebar.isEntryVisible(c);var v=document.createElement("span");mxUtils.write(v,f);f=document.createElement("div");f.style.display="block";f.appendChild(h);f.appendChild(v);mxEvent.addListener(v,"click",function(a){h.checked=!h.checked;mxEvent.consume(a)});b.appendChild(f);return function(){return h.checked?c:null}});p.appendChild(e);p.appendChild(g);p.appendChild(l);n.appendChild(p);y.appendChild(n);for(var q=[],m=0,k=0;k<d.length;k++)for(n=0;n<d[k].entries.length;n++)m++;
+for(var v=[e,g,l],x=0,k=0;k<d.length;k++)(function(a){for(var b=0;b<a.entries.length;b++){var f=a.entries[b];q.push(A(v[Math.floor(x/(m/3))],f.title,f.id));x++}})(d[k]);c.appendChild(y);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";w=document.createElement("input");isLocalStorage&&(w.setAttribute("type","checkbox"),w.checked=!0,w.defaultChecked=!0,d.appendChild(w),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),d.appendChild(n),
 mxEvent.addListener(n,"click",function(a){w.checked=!w.checked;mxEvent.consume(a)}));c.appendChild(d);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],f=0;f<q.length;f++){var c=q[f].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(0<b.length?b.join(";"):"",w.checked);a.hideDialog()});e.className="geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px";
 d.style.textAlign="right"}a.editor.cancelFirst?(d.appendChild(n),d.appendChild(e)):(d.appendChild(e),d.appendChild(n));c.appendChild(d);this.container=c},PluginsDialog=function(a){function e(){if(0==g.length)c.innerHTML=mxResources.get("noPlugins");else{c.innerHTML="";for(var b=0;b<g.length;b++){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[b]);c.appendChild(h);mxUtils.br(c);mxEvent.addListener(d,"click",function(b){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+g[b]+'"?',function(){g.splice(b,1);e()})}}(b))}}}var d=document.createElement("div"),c=document.createElement("div");c.style.height="120px";c.style.overflow="auto";var g=mxSettings.getPlugins().slice();d.appendChild(c);e();var k=mxUtils.button(mxResources.get("add"),
@@ -7393,32 +7395,32 @@ function(){var b="",c=urlParams.p;if(null!=c&&0<c.length){for(var d=c.split(";")
 document.createElement("td");p.style.whiteSpace="nowrap";p.setAttribute("colspan","2");mxUtils.write(p,mxResources.get("loading")+"...");l.appendChild(p);k.appendChild(l);var l=document.createElement("tr"),n=document.createElement("td"),b=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,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()};b.appendChild(f);
 l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";b.appendChild(h);l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("right")+":");var t=
 document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value="0";b.appendChild(t);l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("bottom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value="0";b.appendChild(q);l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");
-n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("circle")+":");l.appendChild(n);var u=document.createElement("input");u.setAttribute("type","checkbox");b.appendChild(u);l.appendChild(b);k.appendChild(l);g.appendChild(k);c.appendChild(g);var g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=new Image,z=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),c=b.getContext("2d"),v=w.width,
-e=w.height,g=parseInt(f.value),k=parseInt(h.value),v=Math.max(1,v-g-parseInt(t.value)),e=Math.max(1,e-k-parseInt(q.value));b.width=v;b.height=e;u.checked&&(c.fillStyle="#000000",c.arc(v/2,e/2,Math.min(v/2,e/2),0,2*Math.PI),c.fill(),c.globalCompositeOperation="source-in");c.drawImage(w,g,k,v,e,0,0,v,e);d(b.toDataURL())});z.setAttribute("disabled","disabled");w.onload=function(){z.removeAttribute("disabled");p.innerHTML="";mxUtils.write(p,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+
-": "+w.height)};w.src=e;mxEvent.addListener(c,"keypress",function(a){13==a.keyCode&&z.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(g),e.appendChild(z)):(e.appendChild(z),e.appendChild(g));c.appendChild(e);this.container=c},EditGeometryDialog=function(a,e){var d=a.editor.graph,c=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),l=document.createElement("tbody"),
+n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("circle")+":");l.appendChild(n);var u=document.createElement("input");u.setAttribute("type","checkbox");b.appendChild(u);l.appendChild(b);k.appendChild(l);g.appendChild(k);c.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 b=document.createElement("canvas"),c=b.getContext("2d"),v=w.width,
+e=w.height,g=parseInt(f.value),k=parseInt(h.value),v=Math.max(1,v-g-parseInt(t.value)),e=Math.max(1,e-k-parseInt(q.value));b.width=v;b.height=e;u.checked&&(c.fillStyle="#000000",c.arc(v/2,e/2,Math.min(v/2,e/2),0,2*Math.PI),c.fill(),c.globalCompositeOperation="source-in");c.drawImage(w,g,k,v,e,0,0,v,e);d(b.toDataURL())});y.setAttribute("disabled","disabled");w.onload=function(){y.removeAttribute("disabled");p.innerHTML="";mxUtils.write(p,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+
+": "+w.height)};w.src=e;mxEvent.addListener(c,"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));c.appendChild(e);this.container=c},EditGeometryDialog=function(a,e){var d=a.editor.graph,c=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),l=document.createElement("tbody"),
 p=document.createElement("tr"),n=document.createElement("td"),b=document.createElement("td");k.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var f=document.createElement("input");f.setAttribute("type","checkbox");null!=c&&c.relative&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);this.init=function(){f.focus()};b.appendChild(f);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");
 mxUtils.write(n,mxResources.get("left")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value=null!=c?c.x:"";b.appendChild(h);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=c?c.y:"";b.appendChild(t);p.appendChild(n);
 p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("dx")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=c&&null!=c.offset?c.offset.x:"";b.appendChild(q);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("dy")+
 ":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=c&&null!=c.offset?c.offset.y:"";b.appendChild(u);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("width")+":");var w=document.createElement("input");w.setAttribute("type","text");w.style.width="100px";w.value=null!=c?c.width:"";b.appendChild(w);p.appendChild(n);p.appendChild(b);
-l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!=c?c.height:"";b.appendChild(z);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var A=document.createElement("input");
+l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=c?c.height:"";b.appendChild(y);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var A=document.createElement("input");
 A.setAttribute("type","text");A.style.width="100px";A.value=1==e.length?mxUtils.getValue(d.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";b.appendChild(A);p.appendChild(n);p.appendChild(b);l.appendChild(p);k.appendChild(l);g.appendChild(k);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";var m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var b=0;b<e.length;b++){var c=d.getCellGeometry(e[b]);null!=
-c&&(c=c.clone(),d.isCellMovable(e[b])&&(c.relative=f.checked,0<mxUtils.trim(h.value).length&&(c.x=Number(h.value)),0<mxUtils.trim(t.value).length&&(c.y=Number(t.value)),0<mxUtils.trim(q.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.x=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.y=Number(u.value))),d.isCellResizable(e[b])&&(0<mxUtils.trim(w.value).length&&(c.width=Number(w.value)),0<mxUtils.trim(z.value).length&&(c.height=Number(z.value))),
+c&&(c=c.clone(),d.isCellMovable(e[b])&&(c.relative=f.checked,0<mxUtils.trim(h.value).length&&(c.x=Number(h.value)),0<mxUtils.trim(t.value).length&&(c.y=Number(t.value)),0<mxUtils.trim(q.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.x=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.y=Number(u.value))),d.isCellResizable(e[b])&&(0<mxUtils.trim(w.value).length&&(c.width=Number(w.value)),0<mxUtils.trim(y.value).length&&(c.height=Number(y.value))),
 d.getModel().setGeometry(e[b],c));0<mxUtils.trim(A.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(A.value),[e[b]])}}finally{d.getModel().endUpdate()}});m.className="geBtn gePrimaryBtn";mxEvent.addListener(g,"keypress",function(b){13==b.keyCode&&m.click()});k=document.createElement("div");k.style.marginTop="20px";k.style.textAlign="right";a.editor.cancelFirst?(k.appendChild(c),k.appendChild(m)):(k.appendChild(m),k.appendChild(c));g.appendChild(k);this.container=g},LibraryDialog=function(a,
 e,d,c,g,k){function l(b){for(b=document.elementFromPoint(b.clientX,b.clientY);null!=b&&b.parentNode!=q;)b=b.parentNode;var a=null;if(null!=b)for(var c=q.firstChild,a=0;null!=c&&c!=b;)c=c.nextSibling,a++;return a}function p(b,c,h,d,e,t,g,k,C){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==w[b]){var A=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled"));
-D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};q.style.backgroundImage="";u.style.display="none";var y=e,B=t;if(e>a.maxImageSize||t>a.maxImageSize){var n=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,t));e*=n;t*=n}y>B?(B=Math.round(100*B/y),y=100):(y=Math.round(100*y/B),B=100);var H=document.createElement("div");H.setAttribute("draggable","true");H.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";H.style.position="relative";H.style.cursor="move";
-mxUtils.setPrefixedStyle(H.style,"transition","transform .1s ease-in-out");if(null!=b){var E=document.createElement("img");E.setAttribute("src",v.convert(b));E.style.width=y+"px";E.style.height=B+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-B)/2)+"px";E.style.paddingLeft=Math.floor((100-y)/2)+"px";H.appendChild(E)}else if(null!=g){var F=a.stringToCells(a.editor.graph.decompress(g.xml));0<F.length&&(a.sidebar.createThumb(F,100,100,H,null,!0,!1),H.firstChild.style.display=mxClient.IS_QUIRKS?
-"inline":"inline-block",H.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.position="absolute";G.style.marginLeft="-12px";G.style.zIndex="1";G.style.cursor="pointer";mxEvent.addListener(G,"dragstart",function(b){mxEvent.consume(b)});(function(b,a,c){mxEvent.addListener(G,"click",function(h){w[a]=null;for(var v=
-0;v<f.length;v++)if(null!=f[v].data&&f[v].data==a||null!=f[v].xml&&null!=c&&f[v].xml==c.xml){f.splice(v,1);break}H.parentNode.removeChild(b);0==f.length&&(q.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(h)});mxEvent.addListener(G,"dblclick",function(b){mxEvent.consume(b)})})(H,b,g);H.appendChild(G);H.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 M=null;null!=b?(M={data:b,w:e,h:t,title:C},null!=k&&(M.aspect=k),w[b]=E,f.push(M)):null!=g&&(g.aspect="fixed",f.push(g),M=g);mxEvent.addListener(D,"keydown",function(b){13==b.keyCode&&null!=m&&(m(),m=null,mxEvent.consume(b))});A();H.appendChild(D);mxEvent.addListener(D,"mousedown",function(b){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(b)});F=function(b){if(mxClient.IS_IOS||
+D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};q.style.backgroundImage="";u.style.display="none";var z=e,B=t;if(e>a.maxImageSize||t>a.maxImageSize){var n=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,t));e*=n;t*=n}z>B?(B=Math.round(100*B/z),z=100):(z=Math.round(100*z/B),B=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 E=document.createElement("img");E.setAttribute("src",v.convert(b));E.style.width=z+"px";E.style.height=B+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-B)/2)+"px";E.style.paddingLeft=Math.floor((100-z)/2)+"px";F.appendChild(E)}else if(null!=g){var G=a.stringToCells(a.editor.graph.decompress(g.xml));0<G.length&&(a.sidebar.createThumb(G,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.position="absolute";H.style.marginLeft="-12px";H.style.zIndex="1";H.style.cursor="pointer";mxEvent.addListener(H,"dragstart",function(b){mxEvent.consume(b)});(function(b,a,c){mxEvent.addListener(H,"click",function(h){w[a]=null;for(var v=
+0;v<f.length;v++)if(null!=f[v].data&&f[v].data==a||null!=f[v].xml&&null!=c&&f[v].xml==c.xml){f.splice(v,1);break}F.parentNode.removeChild(b);0==f.length&&(q.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(h)});mxEvent.addListener(H,"dblclick",function(b){mxEvent.consume(b)})})(F,b,g);F.appendChild(H);F.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 M=null;null!=b?(M={data:b,w:e,h:t,title:C},null!=k&&(M.aspect=k),w[b]=E,f.push(M)):null!=g&&(g.aspect="fixed",f.push(g),M=g);mxEvent.addListener(D,"keydown",function(b){13==b.keyCode&&null!=m&&(m(),m=null,mxEvent.consume(b))});A();F.appendChild(D);mxEvent.addListener(D,"mousedown",function(b){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(b)});G=function(b){if(mxClient.IS_IOS||
 mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,M.title||"",mxResources.get("ok"),function(b){null!=b&&(M.title=b,A())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=m&&(m(),m=null);if(null==M.title||0==M.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);m=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;A()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",F);mxEvent.addListener(H,"dblclick",F);q.appendChild(H);mxEvent.addListener(H,"dragstart",function(a){null==b&&null!=g&&(G.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);z=l(a);mxClient.IS_GC&&(H.style.opacity="0.9");
-window.setTimeout(function(){mxUtils.setPrefixedStyle(H.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(H,30);G.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(H,"dragend",function(b){"hidden"==G.style.visibility&&(G.style.visibility="",D.style.visibility="");z=null;mxUtils.setOpacity(H,100);mxUtils.setPrefixedStyle(H.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),y=mxUtils.parseXml(b),"mxlibrary"==
-y.documentElement.nodeName){B=JSON.parse(mxUtils.getTextContent(y.documentElement));if(null!=B&&0<B.length)for(var J=0;J<B.length;J++)null!=B[J].xml?p(null,null,0,0,0,0,B[J]):p(B[J].data,null,0,0,B[J].w,B[J].h,null,"fixed",B[J].title);e=!0}else if("mxfile"==y.documentElement.nodeName){for(var L=y.documentElement.getElementsByTagName("diagram"),J=0;J<L.length;J++){var B=mxUtils.getTextContent(L[J]),F=a.stringToCells(a.editor.graph.decompress(B)),V=a.editor.graph.getBoundingBoxFromGeometry(F);p(null,
-null,0,0,0,0,{xml:B,w:V.width,h:V.height})}e=!0}}catch(I){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(I){}return null}function n(b){b.dataTransfer.dropEffect=null!=z?"move":"copy";b.stopPropagation();b.preventDefault()}function b(b){b.stopPropagation();b.preventDefault();x=!1;A=l(b);if(null!=z)null!=A&&A<q.children.length?(f.splice(A>z?A-1:A,0,f.splice(z,1)[0]),q.insertBefore(q.children[z],q.children[A])):(f.push(f.splice(z,1)[0]),q.appendChild(q.children[z]));
+"true");D.focus();document.execCommand("selectAll",!1,null);m=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;A()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(F,"dblclick",G);q.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=g&&(H.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);y=l(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="";D.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(b){"hidden"==H.style.visibility&&(H.style.visibility="",D.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(),z=mxUtils.parseXml(b),"mxlibrary"==
+z.documentElement.nodeName){B=JSON.parse(mxUtils.getTextContent(z.documentElement));if(null!=B&&0<B.length)for(var J=0;J<B.length;J++)null!=B[J].xml?p(null,null,0,0,0,0,B[J]):p(B[J].data,null,0,0,B[J].w,B[J].h,null,"fixed",B[J].title);e=!0}else if("mxfile"==z.documentElement.nodeName){for(var L=z.documentElement.getElementsByTagName("diagram"),J=0;J<L.length;J++){var B=mxUtils.getTextContent(L[J]),G=a.stringToCells(a.editor.graph.decompress(B)),V=a.editor.graph.getBoundingBoxFromGeometry(G);p(null,
+null,0,0,0,0,{xml:B,w:V.width,h:V.height})}e=!0}}catch(I){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(I){}return null}function n(b){b.dataTransfer.dropEffect=null!=y?"move":"copy";b.stopPropagation();b.preventDefault()}function b(b){b.stopPropagation();b.preventDefault();x=!1;A=l(b);if(null!=y)null!=A&&A<q.children.length?(f.splice(A>y?A-1:A,0,f.splice(y,1)[0]),q.insertBefore(q.children[y],q.children[A])):(f.push(f.splice(y,1)[0]),q.appendChild(q.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)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(b){p(c,null,0,0,b.width,b.height);q.scrollTop=q.scrollHeight})}b.stopPropagation();b.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 t=document.createElement("input");t.setAttribute("value",e);t.style.marginRight="20px";t.style.marginLeft="10px";t.style.width="500px";null==g||g.isRenamable()||t.setAttribute("disabled","true");this.init=function(){if(null==g||g.isRenamable())t.focus(),mxClient.IS_GC||mxClient.IS_FF||
 5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)};h.appendChild(t);var q=document.createElement("div");q.style.borderWidth="1px 0px 1px 0px";q.style.borderColor="#d3d3d3";q.style.borderStyle="solid";q.style.marginTop="6px";q.style.overflow="auto";q.style.height="340px";q.style.backgroundPosition="center center";q.style.backgroundRepeat="no-repeat";0==f.length&&Graph.fileSupport&&(q.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={},z=null,A=null,m=null;e=function(b){"true"!=mxEvent.getSource(b).getAttribute("contentEditable")&&null!=m&&(m(),m=null,mxEvent.consume(b))};mxEvent.addListener(q,"mousedown",e);mxEvent.addListener(q,"pointerdown",e);mxEvent.addListener(q,"touchstart",
+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,A=null,m=null;e=function(b){"true"!=mxEvent.getSource(b).getAttribute("contentEditable")&&null!=m&&(m(),m=null,mxEvent.consume(b))};mxEvent.addListener(q,"mousedown",e);mxEvent.addListener(q,"pointerdown",e);mxEvent.addListener(q,"touchstart",
 e);var v=new mxUrlConverter,x=!1;if(null!=c)for(e=0;e<c.length;e++)h=c[e],p(h.data,null,0,0,h.w,h.h,h,h.aspect,h.title);mxEvent.addListener(q,"dragleave",function(b){u.style.cursor="";for(var a=mxEvent.getSource(b);null!=a;){if(a==q||a==u){b.stopPropagation();b.preventDefault();break}a=a.parentNode}});var C=function(b){return function(c,f,h,v,m,d,e,t,x){null!=x&&(/(\.vsdx)($|\?)/i.test(x.name)||/(\.vssx)($|\?)/i.test(x.name))?a.importVisio(x,mxUtils.bind(this,function(c){a.spinner.stop();p(c,f,h,
 v,m,d,e,"fixed",mxEvent.isAltDown(b)?null:e.substring(0,e.lastIndexOf(".")).replace(/_/g," "))})):null!=x&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,x.name)?a.parseFile(x,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(p(c.responseText,f,h,v,m,d,e,"fixed",mxEvent.isAltDown(b)?null:e.substring(0,e.lastIndexOf(".")).replace(/_/g," ")),q.scrollTop=q.scrollHeight))})):(p(c,f,h,v,m,d,e,"fixed",mxEvent.isAltDown(b)?null:e.substring(0,
 e.lastIndexOf(".")).replace(/_/g," ")),q.scrollTop=q.scrollHeight)}};mxEvent.addListener(q,"dragover",n);mxEvent.addListener(q,"drop",b);mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",b);d.appendChild(q);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.setAttribute("id","btnCancel");e.className="geBtn";a.editor.cancelFirst&&c.appendChild(e);h=mxUtils.button(mxResources.get("export"),
@@ -7439,24 +7441,24 @@ mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagra
 var a=window.innerWidth,d=window.innerHeight,c=987,g=712;.9*a<c&&(c=Math.max(.9*a,600),e.style.width=c+"px");.9*d<g&&(g=Math.max(.9*d,300),e.style.height=g+"px");this.width=c;this.height=g;this.container=e};
 TemplatesDialog.prototype.init=function(a,e,d,c,g,k,l,p,n,b){function f(){null!=E&&(E.style.fontWeight="normal",E.style.textDecoration="none",E=null)}function h(b,a,c,f,h,v,m){if(-1<b.className.indexOf("geTempDlgRadioBtnActive"))return!1;b.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+f+"]").className="geTempDlgRadioBtn "+(m?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+a).src="/images/"+c+"-sel.svg";C.querySelector("."+h).src="/images/"+
 v+".svg";return!0}function t(b){function a(b){Z.removeChild(f);C.removeChild(c);Z.scrollTop=v}b=b.prevImgUrl||b.imgUrl||TEMPLATE_PATH+"/"+b.url.substring(0,b.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var f=document.createElement("div");f.className="geTempDlgDiagramPreviewBox";var h=document.createElement("img");h.src=b;f.appendChild(h);b=document.createElement("img");b.src="/images/close.png";b.className="geTempDlgPreviewCloseBtn";
-b.setAttribute("title",mxResources.get("close"));f.appendChild(b);var v=Z.scrollTop;mxEvent.addListener(b,"click",a);mxEvent.addListener(c,"click",a);Z.appendChild(f);Z.scrollTop=0;f.style.lineHeight=f.clientHeight+"px"}function q(b,a,c){if(null!=F){for(var f=F.className.split(" "),h=0;h<f.length;h++)if(-1<f[h].indexOf("Active")){f.splice(h,1);break}F.className=f.join(" ")}null!=b?(F=b,F.className+=" "+a,L=c,K.className="geTempDlgCreateBtn"):(L=F=null,K.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
+b.setAttribute("title",mxResources.get("close"));f.appendChild(b);var v=Z.scrollTop;mxEvent.addListener(b,"click",a);mxEvent.addListener(c,"click",a);Z.appendChild(f);Z.scrollTop=0;f.style.lineHeight=f.clientHeight+"px"}function q(b,a,c){if(null!=G){for(var f=G.className.split(" "),h=0;h<f.length;h++)if(-1<f[h].indexOf("Active")){f.splice(h,1);break}G.className=f.join(" ")}null!=b?(G=b,G.className+=" "+a,L=c,K.className="geTempDlgCreateBtn"):(L=G=null,K.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")}
 function u(c){if(null!=L){var f=L;L=null;K.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";f.isExternal?(1==c?b(f.url,f,"nameInput.value"):n(f.url,f,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+f.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(e(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function w(b){b=b?"":"none";for(var a=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<a.length;c++)a[c].style.display=
-b}function z(b,a,c){function f(){K.innerHTML=a?mxResources.get("create"):mxResources.get("copy");w(!a)}P.innerHTML="";q();M=b;var h=null;if(c){h=document.createElement("table");h.className="geTempDlgDiagramsListGrid";var v=document.createElement("tr"),m=document.createElement("th");m.style.width="50%";m.innerHTML=mxResources.get("diagram",null,"Diagram");v.appendChild(m);m=document.createElement("th");m.style.width="25%";m.innerHTML=mxResources.get("changedBy",null,"Changed By");v.appendChild(m);
+b}function y(b,a,c){function f(){K.innerHTML=a?mxResources.get("create"):mxResources.get("copy");w(!a)}P.innerHTML="";q();M=b;var h=null;if(c){h=document.createElement("table");h.className="geTempDlgDiagramsListGrid";var v=document.createElement("tr"),m=document.createElement("th");m.style.width="50%";m.innerHTML=mxResources.get("diagram",null,"Diagram");v.appendChild(m);m=document.createElement("th");m.style.width="25%";m.innerHTML=mxResources.get("changedBy",null,"Changed By");v.appendChild(m);
 m=document.createElement("th");m.style.width="25%";m.innerHTML=mxResources.get("lastModifiedOn",null,"Last modified on");v.appendChild(m);h.appendChild(v);P.appendChild(h)}for(v=0;v<b.length;v++){b[v].isExternal=!a;var d=b[v].url,m=mxUtils.htmlEntities(b[v].title),e=b[v].tooltip||b[v].title,x=b[v].imgUrl,g=mxUtils.htmlEntities(b[v].changedBy||""),k=mxUtils.htmlEntities(b[v].lastModifiedOn||"");x||(x=TEMPLATE_PATH+"/"+d.substring(0,d.length-4)+".png");d=c?50:15;null!=m&&m.length>d&&(m=m.substring(0,
 d)+"&hellip;");if(c){var C=document.createElement("tr"),x=document.createElement("td"),l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramListPreviewBtn";l.setAttribute("title",mxResources.get("preview"));x.appendChild(l);e=document.createElement("span");e.className="geTempDlgDiagramTitle";e.innerHTML=m;x.appendChild(e);C.appendChild(x);x=document.createElement("td");x.innerHTML=g;C.appendChild(x);x=document.createElement("td");x.innerHTML=k;C.appendChild(x);
-h.appendChild(C);null==F&&(f(),q(C,"geTempDlgDiagramsListGridActive",b[v]));(function(b,a){mxEvent.addListener(C,"click",function(){F!=a&&(f(),q(a,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(C,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],C)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",e);null==F&&(f(),q(A,"geTempDlgDiagramTileActive",b[v]));g=document.createElement("div");g.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";
-var z=document.createElement("img");z.style.display="none";(function(b,a){z.onload=function(){a.className="geTempDlgDiagramTileImg";b.style.display=""};z.onerror=function(){a.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(z,g);z.src=x;g.appendChild(z);A.appendChild(g);g=document.createElement("div");g.className="geTempDlgDiagramTileLbl";g.innerHTML=null!=m?m:"";A.appendChild(g);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn";
-l.setAttribute("title",mxResources.get("preview"));A.appendChild(l);(function(b,a){mxEvent.addListener(A,"click",function(){F!=a&&(f(),q(a,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],A);P.appendChild(A)}}}function A(b,a){Q.innerHTML="";q();for(var c=!a&&5<b.length?5:b.length,f=0;f<c;f++){var h=b[f];h.isCategory=!0;var v=document.createElement("div"),m=mxResources.get(h.title);null==m&&(m=h.title.substring(0,1).toUpperCase()+
-h.title.substring(1));v.className="geTempDlgNewDiagramCatItem";v.setAttribute("title",m);m=mxUtils.htmlEntities(m);15<m.length&&(m=m.substring(0,15)+"&hellip;");null==F&&(K.innerHTML=mxResources.get("create"),w(),q(v,"geTempDlgNewDiagramCatItemActive",h));var d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemImg";var e=document.createElement("img");e.src=NEW_DIAGRAM_CATS_PATH+"/"+h.img;d.appendChild(e);v.appendChild(d);d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemLbl";
-d.innerHTML=m;v.appendChild(d);Q.appendChild(v);(function(b,a){mxEvent.addListener(v,"click",function(){F!=a&&(K.innerHTML=mxResources.get("create"),w(),q(a,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(v,"dblclick",u)})(h,v)}T.style.display=5>b.length?"none":""}function m(b){var a=C.querySelector(".geTemplatesList"),c;for(c in b){var f=document.createElement("div"),h=mxResources.get(c),v=b[c];null==h&&(h=c.substring(0,1).toUpperCase()+c.substring(1));f.className="geTemplateCatLink";
-f.setAttribute("title",h+" ("+v.length+")");h=mxUtils.htmlEntities(h);15<h.length&&(h=h.substring(0,15)+"&hellip;");f.innerHTML=h+" ("+v.length+")";a.appendChild(f);(function(a,c,h){mxEvent.addListener(f,"click",function(){E!=h&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=h,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,B&&(H=!0),S.innerHTML=c,aa.style.display="none",z(b[a],!0))})})(c,h,f)}}function v(b){l&&
-(Z.scrollTop=0,P.innerHTML="",U.spin(P),H=!1,B=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),J=null,l(W,b?null:k))}function x(b){f();Z.scrollTop=0;P.innerHTML="";U.spin(P);H=!1;B=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(b)+'"';p(b,W,D?null:k);J=b}c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,B=!1,H=!1,E=null,F=null,L=null,y=!1,D=!0,G=!1,M=[],J,T=C.querySelector(".geTempDlgShowAllBtn"),
+h.appendChild(C);null==G&&(f(),q(C,"geTempDlgDiagramsListGridActive",b[v]));(function(b,a){mxEvent.addListener(C,"click",function(){G!=a&&(f(),q(a,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(C,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],C)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",e);null==G&&(f(),q(A,"geTempDlgDiagramTileActive",b[v]));g=document.createElement("div");g.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";
+var y=document.createElement("img");y.style.display="none";(function(b,a){y.onload=function(){a.className="geTempDlgDiagramTileImg";b.style.display=""};y.onerror=function(){a.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(y,g);y.src=x;g.appendChild(y);A.appendChild(g);g=document.createElement("div");g.className="geTempDlgDiagramTileLbl";g.innerHTML=null!=m?m:"";A.appendChild(g);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn";
+l.setAttribute("title",mxResources.get("preview"));A.appendChild(l);(function(b,a){mxEvent.addListener(A,"click",function(){G!=a&&(f(),q(a,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],A);P.appendChild(A)}}}function A(b,a){Q.innerHTML="";q();for(var c=!a&&5<b.length?5:b.length,f=0;f<c;f++){var h=b[f];h.isCategory=!0;var v=document.createElement("div"),m=mxResources.get(h.title);null==m&&(m=h.title.substring(0,1).toUpperCase()+
+h.title.substring(1));v.className="geTempDlgNewDiagramCatItem";v.setAttribute("title",m);m=mxUtils.htmlEntities(m);15<m.length&&(m=m.substring(0,15)+"&hellip;");null==G&&(K.innerHTML=mxResources.get("create"),w(),q(v,"geTempDlgNewDiagramCatItemActive",h));var d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemImg";var e=document.createElement("img");e.src=NEW_DIAGRAM_CATS_PATH+"/"+h.img;d.appendChild(e);v.appendChild(d);d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemLbl";
+d.innerHTML=m;v.appendChild(d);Q.appendChild(v);(function(b,a){mxEvent.addListener(v,"click",function(){G!=a&&(K.innerHTML=mxResources.get("create"),w(),q(a,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(v,"dblclick",u)})(h,v)}T.style.display=5>b.length?"none":""}function m(b){var a=C.querySelector(".geTemplatesList"),c;for(c in b){var f=document.createElement("div"),h=mxResources.get(c),v=b[c];null==h&&(h=c.substring(0,1).toUpperCase()+c.substring(1));f.className="geTemplateCatLink";
+f.setAttribute("title",h+" ("+v.length+")");h=mxUtils.htmlEntities(h);15<h.length&&(h=h.substring(0,15)+"&hellip;");f.innerHTML=h+" ("+v.length+")";a.appendChild(f);(function(a,c,h){mxEvent.addListener(f,"click",function(){E!=h&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=h,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,B&&(F=!0),S.innerHTML=c,aa.style.display="none",y(b[a],!0))})})(c,h,f)}}function v(b){l&&
+(Z.scrollTop=0,P.innerHTML="",U.spin(P),F=!1,B=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),J=null,l(W,b?null:k))}function x(b){f();Z.scrollTop=0;P.innerHTML="";U.spin(P);F=!1;B=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(b)+'"';p(b,W,D?null:k);J=b}c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,B=!1,F=!1,E=null,G=null,L=null,z=!1,D=!0,H=!1,M=[],J,T=C.querySelector(".geTempDlgShowAllBtn"),
 P=C.querySelector(".geTempDlgDiagramsTiles"),S=C.querySelector(".geTempDlgDiagramsListTitle"),aa=C.querySelector(".geTempDlgDiagramsListBtns"),Z=C.querySelector(".geTempDlgContent"),N=C.querySelector(".geTempDlgDiagramsList"),Y=C.querySelector(".geTempDlgNewDiagramCat"),Q=C.querySelector(".geTempDlgNewDiagramCatList"),K=C.querySelector(".geTempDlgCreateBtn"),U=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(C.querySelector(".geTempDlgNewDiagramlbl"),
 "click",function(){f();Y.style.display="";N.style.minHeight="calc(100% - 280px)";v(D)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){h(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(D=!0,null==J?v(D):x(J))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){h(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg",
-"all-diagrams",!0)&&(D=!1,null==J?v(D):x(J))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){h(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(G=!0,z(M,!1,G))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){h(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(G=!1,z(M,!1,G))});mxEvent.addListener(T,"click",function(){y?(Y.style.height="280px",
-Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),A(I)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),A(I,!0));y=!y});var R=!1,O=!1,V={},I=[],X=1;mxUtils.get(c,function(b){if(!R){R=!0;for(b=b.getXml().documentElement.firstChild;null!=b;){if("undefined"!==typeof b.getAttribute){var a=b.getAttribute("url");if(null!=a){var c=a.indexOf("/"),a=a.substring(0,c),c=V[a];null==c&&(X++,c=[],V[a]=c);c.push({url:b.getAttribute("url"),
-libs:b.getAttribute("libs"),title:b.getAttribute("title"),tooltip:b.getAttribute("url"),imgUrl:b.getAttribute("imgUrl")})}}b=b.nextSibling}m(V)}});mxUtils.get(g,function(b){if(!O){O=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==typeof b.getAttribute&&null!=b.getAttribute("title")&&I.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),title:b.getAttribute("title")}),b=b.nextSibling;A(I)}});var W=function(b,a){aa.style.display="";U.stop();B=!1;H?H=!1:a?P.innerHTML=a:
-0==b.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):z(b,!1,G)};v(D);var da=null;p&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(b){var a=this;null!=da&&clearTimeout(da);13==b.keyCode?x(a.value):da=setTimeout(function(){x(a.value)},500)});mxEvent.addListener(K,"click",u);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){u(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=
+"all-diagrams",!0)&&(D=!1,null==J?v(D):x(J))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){h(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(H=!0,y(M,!1,H))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){h(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(H=!1,y(M,!1,H))});mxEvent.addListener(T,"click",function(){z?(Y.style.height="280px",
+Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),A(I)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),A(I,!0));z=!z});var R=!1,O=!1,V={},I=[],X=1;mxUtils.get(c,function(b){if(!R){R=!0;for(b=b.getXml().documentElement.firstChild;null!=b;){if("undefined"!==typeof b.getAttribute){var a=b.getAttribute("url");if(null!=a){var c=a.indexOf("/"),a=a.substring(0,c),c=V[a];null==c&&(X++,c=[],V[a]=c);c.push({url:b.getAttribute("url"),
+libs:b.getAttribute("libs"),title:b.getAttribute("title"),tooltip:b.getAttribute("url"),imgUrl:b.getAttribute("imgUrl")})}}b=b.nextSibling}m(V)}});mxUtils.get(g,function(b){if(!O){O=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==typeof b.getAttribute&&null!=b.getAttribute("title")&&I.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),title:b.getAttribute("title")}),b=b.nextSibling;A(I)}});var W=function(b,a){aa.style.display="";U.stop();B=!1;F?F=!1:a?P.innerHTML=a:
+0==b.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):y(b,!1,H)};v(D);var da=null;p&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(b){var a=this;null!=da&&clearTimeout(da);13==b.keyCode?x(a.value):da=setTimeout(function(){x(a.value)},500)});mxEvent.addListener(K,"click",u);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){u(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=
 d&&d();a.hideDialog(!0)})};(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,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw==":
@@ -7469,8 +7471,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none
 type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity",
 type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction",
 type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point",
-type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",
-type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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';
+type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",
+dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",
+dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(b,a){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;
 Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;null!=b.templateFile&&(EditorUi.templateFile=b.templateFile);b.customFonts&&(Menus.prototype.defaultFonts=b.customFonts.concat(Menus.prototype.defaultFonts));b.customPresetColors&&(ColorDialog.prototype.presetColors=b.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=b.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=b.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));
 if(null!=b.css){var c=document.createElement("style");c.setAttribute("type","text/css");c.appendChild(document.createTextNode(b.css));var f=document.getElementsByTagName("script")[0];f.parentNode.insertBefore(c,f)}null!=b.libraries&&(Sidebar.prototype.customEntries=b.libraries);null!=b.enabledLibraries&&(Sidebar.prototype.enabledLibraries=b.enabledLibraries);null!=b.defaultLibraries&&(Sidebar.prototype.defaultEntries=b.defaultLibraries);null!=b.defaultCustomLibraries&&(Editor.defaultCustomLibraries=
@@ -7526,20 +7529,20 @@ h.push(c.dependentProps[b]);m.push(q)}t.editorUi.fireEvent(new mxEventObject("st
 values:a,type:c,defVal:h,countProperty:m,parentRow:d,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(t,function(a){for(var v=d,t=0;null!=v.nextSibling;)if(v.nextSibling.getAttribute("data-pName")==b)v=v.nextSibling,t++;else break;var g={type:c,parentRow:d,index:t,isDeletable:!0,defVal:h,countProperty:m},t=q(b,"",g,0==t%2,e);f(b,h,g);v.parentNode.insertBefore(t,v.nextSibling);mxEvent.consume(a)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
 function e(b,a,c,f,h,m,d){if(0<h){var e=Array(h);a=null!=a?a.split(","):[];for(var v=0;v<h;v++)e[v]=null!=a[v]?a[v]:null!=f?f:"";w.push({name:b,values:e,type:c,defVal:f,parentRow:m,flipBkg:d,size:h})}return document.createElement("div")}function v(b,a,c){var h=document.createElement("input");h.type="checkbox";h.checked="1"==a;mxEvent.addListener(h,"change",function(){f(b,h.checked?"1":"0",c)});return h}function q(a,c,q,g,w){var u=q.dispName,x=q.type,k=document.createElement("tr");k.className="gePropRow"+
 (w?"Dark":"")+(g?"Alt":"")+" gePropNonHeaderRow";k.setAttribute("data-pName",a);k.setAttribute("data-pValue",c);g=!1;null!=q.index&&(k.setAttribute("data-index",q.index),u=(null!=u?u:"")+"["+q.index+"]",g=!0);var l=document.createElement("td");l.className="gePropRowCell";l.innerHTML=mxUtils.htmlEntities(mxResources.get(u,null,u));g&&(l.style.textAlign="right");k.appendChild(l);l=document.createElement("td");l.className="gePropRowCell";if("color"==x)l.appendChild(m(a,c,q));else if("bool"==x||"boolean"==
-x)l.appendChild(v(a,c,q));else if("enum"==x){var A=q.enumList;for(w=0;w<A.length;w++)if(u=A[w],u.val==c){l.innerHTML=mxUtils.htmlEntities(mxResources.get(u.dispName,null,u.dispName));break}mxEvent.addListener(l,"click",mxUtils.bind(t,function(){var m=document.createElement("select");h(l,m);for(var d=0;d<A.length;d++){var e=A[d],v=document.createElement("option");v.value=mxUtils.htmlEntities(e.val);v.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));m.appendChild(v)}m.value=
-c;b.appendChild(m);mxEvent.addListener(m,"change",function(){var b=mxUtils.htmlEntities(m.value);f(a,b,q)});m.focus();mxEvent.addListener(m,"blur",function(){b.removeChild(m)})}))}else"dynamicArr"==x?l.appendChild(d(a,c,q.subType,q.subDefVal,q.countProperty,k,w)):"staticArr"==x?l.appendChild(e(a,c,q.subType,q.subDefVal,q.size,k,w)):(l.innerHTML=c,mxEvent.addListener(l,"click",mxUtils.bind(t,function(){function m(){var b=d.value;null!=q.min&&b<q.min?b=q.min:null!=q.max&&b>q.max&&(b=q.max);b=mxUtils.htmlEntities(("int"==
-x?parseInt(b):b)+"");f(a,b,q)}var d=document.createElement("input");h(l,d,!0);d.value=c;d.className="gePropEditor";if("int"==x||"float"==x)d.type="number",d.step="int"==x?"1":"any",null!=q.min&&(d.min=parseFloat(q.min)),null!=q.max&&(d.max=parseFloat(q.max));b.appendChild(d);mxEvent.addListener(d,"change",m);mxEvent.addListener(d,"keypress",function(b){13==b.keyCode&&m()});d.focus();mxEvent.addListener(d,"blur",function(){b.removeChild(d)})})));q.isDeletable&&(w=mxUtils.button("-",mxUtils.bind(t,
-function(b){f(a,"",q,q.index);mxEvent.consume(b)})),w.style.height="16px",w.style.width="25px",w.style["float"]="right",w.className="geColorBtn",l.appendChild(w));k.appendChild(l);return k}var t=this,g=this.editorUi.editor.graph,w=[];b.style.position="relative";b.style.padding="0";var u=document.createElement("table");u.style.whiteSpace="nowrap";u.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var k=document.createElement("th");k.className="gePropHeaderCell";var l=
-document.createElement("img");l.src=Sidebar.prototype.expandedImage;k.appendChild(l);mxUtils.write(k,mxResources.get("property",null,"Property"));x.style.cursor="pointer";var A=function(){var a=u.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var h=b.childNodes[f],m=h.nodeName.toUpperCase();"INPUT"!=m&&"SELECT"!=m||b.removeChild(h)}catch(ea){}}else l.src=Sidebar.prototype.expandedImage,
-c="";for(f=0;f<a.length;f++)a[f].style.display=c};mxEvent.addListener(x,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;A()});x.appendChild(k);k=document.createElement("th");k.className="gePropHeaderCell";k.innerHTML=mxResources.get("value",null,"Value");x.appendChild(k);u.appendChild(x);var z=!1,p=!1,C;for(C in a){var x=a[C],n=null!=c.style[C]?mxUtils.htmlEntities(c.style[C]+""):x.defVal;if("separator"==x.type)p=!p;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||
-a[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var U=x.dependentProps,R=[],O=[],k=0;k<U.length;k++){var V=c.style[U[k]];O.push(a[U[k]].subDefVal);R.push(null!=V?V.split(","):[])}x.dependentPropsDefVal=O;x.dependentPropsVals=R}u.appendChild(q(C,n,x,z,p));z=!z}}for(k=0;k<w.length;k++)for(x=w[k],a=x.parentRow,c=0;c<x.values.length;c++)C=q(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},
-0==c%2,x.flipBkg),a.parentNode.insertBefore(C,a.nextSibling),a=C;b.appendChild(u);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function a(b){function a(b){var a=mxUtils.button("",function(a){f.getModel().beginUpdate();try{var c=f.getSelectionCells();for(a=0;a<c.length;a++){for(var h=f.getModel().getStyle(c[a]),d=0;d<m.length;d++)h=mxUtils.removeStylename(h,m[d]);var e=f.getModel().isVertex(c[a])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=b?(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,
-b.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,
-mxConstants.STYLE_FILLCOLOR,"#ffffff")),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null))));f.getModel().setStyle(c[a],h)}}finally{f.getModel().endUpdate()}});a.className="geStyleButton";a.style.width=
-"36px";a.style.height="30px";a.style.margin="0px 6px 6px 0px";if(null!=b)null!=b.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":a.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor=b.fill||mxUtils.getValue(f.defaultVertexStyle,
-mxConstants.STYLE_FILLCOLOR,"#ffffff"),a.style.border="1px solid "+(b.stroke||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),d=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");a.style.backgroundColor=c;a.style.border="1px solid "+d}h.appendChild(a)}h.innerHTML="";for(var c=0;c<b.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(h),a(b[c])}function c(b){mxEvent.addListener(b,
-"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi.editor.graph,h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.paddingLeft="24px";h.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(h);var m="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");
-null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var d=document.createElement("div");d.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
+x)l.appendChild(v(a,c,q));else if("enum"==x){var A=q.enumList;for(w=0;w<A.length;w++)if(u=A[w],u.val==c){l.innerHTML=mxUtils.htmlEntities(mxResources.get(u.dispName,null,u.dispName));break}mxEvent.addListener(l,"click",mxUtils.bind(t,function(){var m=document.createElement("select");h(l,m);for(var d=0;d<A.length;d++){var v=A[d],e=document.createElement("option");e.value=mxUtils.htmlEntities(v.val);e.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));m.appendChild(e)}m.value=
+c;b.appendChild(m);mxEvent.addListener(m,"change",function(){var b=mxUtils.htmlEntities(m.value);f(a,b,q)});m.focus();mxEvent.addListener(m,"blur",function(){b.removeChild(m)})}))}else"dynamicArr"==x?l.appendChild(d(a,c,q.subType,q.subDefVal,q.countProperty,k,w)):"staticArr"==x?l.appendChild(e(a,c,q.subType,q.subDefVal,q.size,k,w)):(l.innerHTML=c,mxEvent.addListener(l,"click",mxUtils.bind(t,function(){function m(){var b=d.value,b=0==b.length&&"string"!=x?0:b;q.allowAuto&&("auto"==b.trim().toLowerCase()?
+(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=q.min&&b<q.min?b=q.min:null!=q.max&&b>q.max&&(b=q.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");f(a,b,q)}var d=document.createElement("input");h(l,d,!0);d.value=c;d.className="gePropEditor";"int"!=x&&"float"!=x||q.allowAuto||(d.type="number",d.step="int"==x?"1":"any",null!=q.min&&(d.min=parseFloat(q.min)),null!=q.max&&(d.max=parseFloat(q.max)));b.appendChild(d);mxEvent.addListener(d,"change",m);mxEvent.addListener(d,"keypress",
+function(b){13==b.keyCode&&m()});d.focus();mxEvent.addListener(d,"blur",function(){b.removeChild(d)})})));q.isDeletable&&(w=mxUtils.button("-",mxUtils.bind(t,function(b){f(a,"",q,q.index);mxEvent.consume(b)})),w.style.height="16px",w.style.width="25px",w.style["float"]="right",w.className="geColorBtn",l.appendChild(w));k.appendChild(l);return k}var t=this,g=this.editorUi.editor.graph,w=[];b.style.position="relative";b.style.padding="0";var u=document.createElement("table");u.style.whiteSpace="nowrap";
+u.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var k=document.createElement("th");k.className="gePropHeaderCell";var l=document.createElement("img");l.src=Sidebar.prototype.expandedImage;k.appendChild(l);mxUtils.write(k,mxResources.get("property",null,"Property"));x.style.cursor="pointer";var A=function(){var a=u.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-
+1;0<=f;f--)try{var h=b.childNodes[f],m=h.nodeName.toUpperCase();"INPUT"!=m&&"SELECT"!=m||b.removeChild(h)}catch(ea){}}else l.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<a.length;f++)a[f].style.display=c};mxEvent.addListener(x,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;A()});x.appendChild(k);k=document.createElement("th");k.className="gePropHeaderCell";k.innerHTML=mxResources.get("value",null,"Value");x.appendChild(k);u.appendChild(x);var y=!1,C=!1,p;for(p in a){var x=
+a[p],n=null!=c.style[p]?mxUtils.htmlEntities(c.style[p]+""):x.defVal;if("separator"==x.type)C=!C;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||a[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var U=x.dependentProps,R=[],O=[],k=0;k<U.length;k++){var V=c.style[U[k]];O.push(a[U[k]].subDefVal);R.push(null!=V?V.split(","):[])}x.dependentPropsDefVal=O;x.dependentPropsVals=R}u.appendChild(q(p,n,x,y,C));y=!y}}for(k=0;k<w.length;k++)for(x=w[k],a=x.parentRow,c=0;c<x.values.length;c++)p=
+q(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),a.parentNode.insertBefore(p,a.nextSibling),a=p;b.appendChild(u);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function a(b){function a(b){var a=mxUtils.button("",function(a){f.getModel().beginUpdate();try{var c=f.getSelectionCells();for(a=0;a<c.length;a++){for(var h=f.getModel().getStyle(c[a]),d=0;d<m.length;d++)h=mxUtils.removeStylename(h,
+m[d]);var e=f.getModel().isVertex(c[a])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=b?(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,
+b.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,"#ffffff")),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,
+null))));f.getModel().setStyle(c[a],h)}}finally{f.getModel().endUpdate()}});a.className="geStyleButton";a.style.width="36px";a.style.height="30px";a.style.margin="0px 6px 6px 0px";if(null!=b)null!=b.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":a.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?
+a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor=b.fill||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),a.style.border="1px solid "+(b.stroke||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),d=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");a.style.backgroundColor=c;a.style.border="1px solid "+
+d}h.appendChild(a)}h.innerHTML="";for(var c=0;c<b.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(h),a(b[c])}function c(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi.editor.graph,h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.paddingLeft="24px";h.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(h);
+var m="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var d=document.createElement("div");d.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
 mxEvent.addListener(d,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);a(this.defaultColorSchemes[this.editorUi.currentScheme])}));var e=document.createElement("div");e.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
 1<this.defaultColorSchemes.length&&(b.appendChild(d),b.appendChild(e));mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);a(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(d);c(e);a(this.defaultColorSchemes[this.editorUi.currentScheme]);return b};StyleFormatPanel.prototype.addEditOps=function(b){var a=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&
 (c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",b.appendChild(c));var f=this.editorUi.editor.graph,h=f.view.getState(f.getSelectionCell());1==f.getSelectionCount()&&null!=h&&null!=h.shape&&null!=h.shape.stencil?(a=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,
@@ -7550,7 +7553,7 @@ this.getInsertPoint=function(){return null!=a?this.getPointForEvent(a):c.apply(t
 a)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=a.marginLeft||0;c.marginRight=a.marginRight||0;c.marginTop=a.marginTop||0;c.marginBottom=a.marginBottom||0;c.resizeParent=!1;return c}return f.apply(this,arguments)}};var q=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return q.apply(this,arguments)&&!mxClient.IS_SF};var u=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var a=u.apply(this,arguments);if(null==
 a){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}null!=this.globalUrlVars&&(a=this.globalUrlVars[b])}return a};var w=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){w.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
 null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
-this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var z=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){z.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){if("data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions)){for(var a=0;a<b.actions.length;a++)if(null!=b.actions[a].open)if(this.isCustomLink(b.actions[a].open)){if(!this.customLinkClicked(b.actions[a].open))return}else this.openLink(b.actions[a].open);
+this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var y=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){y.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){if("data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions)){for(var a=0;a<b.actions.length;a++)if(null!=b.actions[a].open)if(this.isCustomLink(b.actions[a].open)){if(!this.customLinkClicked(b.actions[a].open))return}else this.openLink(b.actions[a].open);
 this.model.beginUpdate();try{for(a=0;a<b.actions.length;a++)this.handleLinkAction(b.actions[a])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(b){var a=[];null!=b.select&&this.isEnabled()&&(a=this.getCellsForAction(b.select),this.setSelectionCells(a));null!=b.highlight&&(a=this.getCellsForAction(b.highlight),this.highlightCells(a,b.highlight.color,b.highlight.duration,b.highlight.opacity));null!=b.toggle&&this.toggleCells(this.getCellsForAction(b.toggle));null!=b.show&&
 this.setCellsVisible(this.getCellsForAction(b.show),!0);null!=b.hide&&this.setCellsVisible(this.getCellsForAction(b.hide),!1);null!=b.scroll&&(a=this.getCellsForAction(b.scroll));0<a.length&&this.scrollCellToVisible(a[0])};Graph.prototype.getCellsForAction=function(b){return this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags))};Graph.prototype.getCellsById=function(b){var a=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.getDefaultParent(),a=a.concat(this.model.filterDescendants(function(b){return b!=
 f},f));else{var h=this.model.getCell(b[c]);null!=h&&a.push(h)}return a};Graph.prototype.getCellsForTags=function(b,a,c){var f=[];if(null!=b){a=null!=a?a:this.model.getDescendants(this.model.getRoot());c=null!=c?c:"tags";for(var h=0;h<a.length;h++)if(this.model.isVertex(a[h])||this.model.isEdge(a[h])){var m=null!=a[h].value&&"object"==typeof a[h].value?mxUtils.trim(a[h].value.getAttribute(c)||""):"",d=!0;if(0<m.length)for(var m=m.toLowerCase().split(" "),e=0;e<b.length&&d;e++)var q=mxUtils.trim(b[e]).toLowerCase(),
@@ -7572,17 +7575,17 @@ mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3
 Math.min(e,Math.max(parseInt(u.value),parseInt(w.value))));w.value=Math.max(1,Math.min(e,Math.min(parseInt(u.value),parseInt(w.value))))}function f(a){function c(a,c,h){var m=a.getGraphBounds(),d=0,e=0,q=da.get(),t=1/a.pageScale,g=A.checked;if(g)var t=parseInt(X.value),v=parseInt(W.value),t=Math.min(q.height*v/(m.height/a.view.scale),q.width*t/(m.width/a.view.scale));else t=parseInt(l.value)/(100*a.pageScale),isNaN(t)&&(f=1/a.pageScale,l.value="100 %");q=mxRectangle.fromRectangle(q);q.width=Math.ceil(q.width*
 f);q.height=Math.ceil(q.height*f);t*=f;!g&&a.pageVisible?(m=a.getPageLayout(),d-=m.x*q.width,e-=m.y*q.height):g=!0;if(null==c){c=PrintDialog.createPrintPreview(a,t,q,0,d,e,g);c.pageSelector=!1;c.mathEnabled=!1;a=b.getCurrentFile();null!=a&&(c.title=a.getTitle());var w=c.writeHead;c.writeHead=function(a){w.apply(this,arguments);null!=b.editor.fontCss&&(a.writeln('<style type="text/css">'),a.writeln(b.editor.fontCss),a.writeln("</style>"))};if("undefined"!==typeof MathJax){var u=c.renderPage;c.renderPage=
 function(b,a,c,f,h,m){var d=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var e=u.apply(this,arguments);mxClient.NO_FO=d;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:e.className="geDisableMathJax";return e}}c.open(null,null,h,!0)}else{q=a.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";c.backgroundColor=q;c.autoOrigin=g;c.appendGraph(a,t,d,e,h,!0)}return c}var f=parseInt(ba.value)/100;isNaN(f)&&(f=
-1,ba.value="100 %");var f=.75*f,m=w.value,d=u.value,e=!v.checked,t=null;e&&(e=m==q&&d==q);if(!e&&null!=b.pages&&b.pages.length){var g=0,e=b.pages.length-1;v.checked||(g=parseInt(m)-1,e=parseInt(d)-1);for(var k=g;k<=e;k++){var x=b.pages[k],m=x==b.currentPage?h:null;if(null==m){var m=b.createTemporaryGraph(h.getStylesheet()),d=!0,g=!1,z=null,p=null;null==x.viewState&&null==x.mapping&&null==x.root&&b.updatePageRoot(x);null!=x.viewState?(d=x.viewState.pageVisible,g=x.viewState.mathEnabled,z=x.viewState.background,
-p=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(g="0"!=x.mapping.diagramMap.get("mathEnabled"),z=x.mapping.diagramMap.get("background"),p=x.mapping.diagramMap.get("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null);m.background=z;m.backgroundImage=null!=p?new mxImage(p.src,p.width,p.height):null;m.pageVisible=d;m.mathEnabled=g;var y=m.getGlobalVariable;m.getGlobalVariable=function(b){return"page"==b?x.getName():"pagenumber"==b?k+1:y.apply(this,arguments)};document.body.appendChild(m.container);
+1,ba.value="100 %");var f=.75*f,m=w.value,d=u.value,e=!g.checked,t=null;e&&(e=m==q&&d==q);if(!e&&null!=b.pages&&b.pages.length){var v=0,e=b.pages.length-1;g.checked||(v=parseInt(m)-1,e=parseInt(d)-1);for(var k=v;k<=e;k++){var x=b.pages[k],m=x==b.currentPage?h:null;if(null==m){var m=b.createTemporaryGraph(h.getStylesheet()),d=!0,v=!1,y=null,p=null;null==x.viewState&&null==x.mapping&&null==x.root&&b.updatePageRoot(x);null!=x.viewState?(d=x.viewState.pageVisible,v=x.viewState.mathEnabled,y=x.viewState.background,
+p=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(v="0"!=x.mapping.diagramMap.get("mathEnabled"),y=x.mapping.diagramMap.get("background"),p=x.mapping.diagramMap.get("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null);m.background=y;m.backgroundImage=null!=p?new mxImage(p.src,p.width,p.height):null;m.pageVisible=d;m.mathEnabled=v;var z=m.getGlobalVariable;m.getGlobalVariable=function(b){return"page"==b?x.getName():"pagenumber"==b?k+1:z.apply(this,arguments)};document.body.appendChild(m.container);
 b.updatePageRoot(x);m.model.setRoot(x.root)}t=c(m,t,k!=e);m!=h&&m.container.parentNode.removeChild(m.container)}}else t=c(h);t.mathEnabled&&(e=t.wnd.document,e.writeln('<script type="text/x-mathjax-config">'),e.writeln("MathJax.Hub.Config({"),e.writeln("showMathMenu: false,"),e.writeln('messageStyle: "none",'),e.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),e.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),e.writeln('"HTML-CSS": {'),
 e.writeln("imageFont: null"),e.writeln("},"),e.writeln("TeX: {"),e.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),e.writeln("},"),e.writeln("tex2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("},"),e.writeln("asciimath2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("}"),e.writeln("});"),a&&(e.writeln("MathJax.Hub.Queue(function () {"),e.writeln("window.print();"),e.writeln("});")),e.writeln("\x3c/script>"),e.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>'));
-t.closeDocument();!t.mathEnabled&&a&&PrintDialog.printPreview(t)}var h=b.editor.graph,m=document.createElement("div"),d=document.createElement("h3");d.style.width="100%";d.style.textAlign="center";d.style.marginTop="0px";mxUtils.write(d,a||mxResources.get("print"));m.appendChild(d);var e=1,q=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var v=document.createElement("input");v.style.cssText="margin-right:8px;margin-bottom:8px;";
-v.setAttribute("value","all");v.setAttribute("type","radio");v.setAttribute("name","pages-printdialog");t.appendChild(v);d=document.createElement("span");mxUtils.write(d,mxResources.get("printAllPages"));t.appendChild(d);mxUtils.br(t);var g=v.cloneNode(!0);v.setAttribute("checked","checked");g.setAttribute("value","range");t.appendChild(g);d=document.createElement("span");mxUtils.write(d,mxResources.get("pages")+":");t.appendChild(d);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";t.appendChild(w);d=document.createElement("span");mxUtils.write(d,mxResources.get("to"));t.appendChild(d);var u=w.cloneNode(!0);t.appendChild(u);mxEvent.addListener(w,"focus",function(){g.checked=!0});mxEvent.addListener(u,"focus",function(){g.checked=!0});mxEvent.addListener(w,"change",c);mxEvent.addListener(u,"change",c);if(null!=b.pages&&(e=b.pages.length,null!=b.currentPage))for(d=0;d<b.pages.length;d++)if(b.currentPage==
+t.closeDocument();!t.mathEnabled&&a&&PrintDialog.printPreview(t)}var h=b.editor.graph,m=document.createElement("div"),d=document.createElement("h3");d.style.width="100%";d.style.textAlign="center";d.style.marginTop="0px";mxUtils.write(d,a||mxResources.get("print"));m.appendChild(d);var e=1,q=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-bottom:8px;";
+g.setAttribute("value","all");g.setAttribute("type","radio");g.setAttribute("name","pages-printdialog");t.appendChild(g);d=document.createElement("span");mxUtils.write(d,mxResources.get("printAllPages"));t.appendChild(d);mxUtils.br(t);var v=g.cloneNode(!0);g.setAttribute("checked","checked");v.setAttribute("value","range");t.appendChild(v);d=document.createElement("span");mxUtils.write(d,mxResources.get("pages")+":");t.appendChild(d);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";t.appendChild(w);d=document.createElement("span");mxUtils.write(d,mxResources.get("to"));t.appendChild(d);var u=w.cloneNode(!0);t.appendChild(u);mxEvent.addListener(w,"focus",function(){v.checked=!0});mxEvent.addListener(u,"focus",function(){v.checked=!0});mxEvent.addListener(w,"change",c);mxEvent.addListener(u,"change",c);if(null!=b.pages&&(e=b.pages.length,null!=b.currentPage))for(d=0;d<b.pages.length;d++)if(b.currentPage==
 b.pages[d]){q=d+1;w.value=q;u.value=q;break}w.setAttribute("max",e);u.setAttribute("max",e);1<e&&m.appendChild(t);var k=document.createElement("div");k.style.marginBottom="10px";var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");k.appendChild(x);d=document.createElement("span");mxUtils.write(d,mxResources.get("adjustTo"));k.appendChild(d);var l=document.createElement("input");l.style.cssText=
-"margin:0 8px 0 8px;";l.setAttribute("value","100 %");l.style.width="50px";k.appendChild(l);mxEvent.addListener(l,"focus",function(){x.checked=!0});m.appendChild(k);var t=t.cloneNode(!1),A=x.cloneNode(!0);A.setAttribute("value","fit");x.setAttribute("checked","checked");d=document.createElement("div");d.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";d.appendChild(A);t.appendChild(d);k=document.createElement("table");k.style.display="inline-block";var z=document.createElement("tbody"),
+"margin:0 8px 0 8px;";l.setAttribute("value","100 %");l.style.width="50px";k.appendChild(l);mxEvent.addListener(l,"focus",function(){x.checked=!0});m.appendChild(k);var t=t.cloneNode(!1),A=x.cloneNode(!0);A.setAttribute("value","fit");x.setAttribute("checked","checked");d=document.createElement("div");d.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";d.appendChild(A);t.appendChild(d);k=document.createElement("table");k.style.display="inline-block";var y=document.createElement("tbody"),
 p=document.createElement("tr"),n=p.cloneNode(!0),K=document.createElement("td"),U=K.cloneNode(!0),R=K.cloneNode(!0),O=K.cloneNode(!0),V=K.cloneNode(!0),I=K.cloneNode(!0);K.style.textAlign="right";O.style.textAlign="right";mxUtils.write(K,mxResources.get("fitTo"));var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","1");X.setAttribute("min","1");X.setAttribute("type","number");X.style.width="40px";U.appendChild(X);d=document.createElement("span");mxUtils.write(d,
-mxResources.get("fitToSheetsAcross"));R.appendChild(d);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){A.checked=!0});mxEvent.addListener(W,"focus",function(){A.checked=!0});d=document.createElement("span");mxUtils.write(d,mxResources.get("fitToSheetsDown"));I.appendChild(d);p.appendChild(K);p.appendChild(U);p.appendChild(R);n.appendChild(O);n.appendChild(V);n.appendChild(I);z.appendChild(p);z.appendChild(n);k.appendChild(z);
+mxResources.get("fitToSheetsAcross"));R.appendChild(d);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){A.checked=!0});mxEvent.addListener(W,"focus",function(){A.checked=!0});d=document.createElement("span");mxUtils.write(d,mxResources.get("fitToSheetsDown"));I.appendChild(d);p.appendChild(K);p.appendChild(U);p.appendChild(R);n.appendChild(O);n.appendChild(V);n.appendChild(I);y.appendChild(p);y.appendChild(n);k.appendChild(y);
 t.appendChild(k);m.appendChild(t);t=document.createElement("div");d=document.createElement("div");d.style.fontWeight="bold";d.style.marginBottom="12px";mxUtils.write(d,mxResources.get("paperSize"));t.appendChild(d);d=document.createElement("div");d.style.marginBottom="12px";var da=PageSetupDialog.addPageFormatPanel(d,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);t.appendChild(d);d=document.createElement("span");mxUtils.write(d,mxResources.get("pageScale"));t.appendChild(d);
 var ba=document.createElement("input");ba.style.cssText="margin:0 8px 0 8px;";ba.setAttribute("value","100 %");ba.style.width="60px";t.appendChild(ba);m.appendChild(t);d=document.createElement("div");d.style.cssText="text-align:right;margin:48px 0 0 0;";t=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});t.className="geBtn";b.editor.cancelFirst&&d.appendChild(t);b.isOffline()||(k=mxUtils.button(mxResources.get("help"),function(){h.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
 k.className="geBtn",d.appendChild(k));PrintDialog.previewEnabled&&(k=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),k.className="geBtn",d.appendChild(k));k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});k.className="geBtn gePrimaryBtn";d.appendChild(k);b.editor.cancelFirst||d.appendChild(t);m.appendChild(d);this.container=m};var m=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
@@ -7591,7 +7594,7 @@ this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnab
 var ErrorDialog=function(a,e,d,c,g,k,l,p,n,b,f){n=null!=n?n:!0;var h=document.createElement("div");h.style.textAlign="center";if(null!=e){var t=document.createElement("div");t.style.padding="0px";t.style.margin="0px";t.style.fontSize="18px";t.style.paddingBottom="16px";t.style.marginBottom="16px";t.style.borderBottom="1px solid #c0c0c0";t.style.color="gray";mxUtils.write(t,e);h.appendChild(t)}e=document.createElement("div");e.style.padding="6px";e.innerHTML=d;h.appendChild(e);d=document.createElement("div");
 d.style.marginTop="16px";d.style.textAlign="center";null!=k&&(e=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();k()}),e.className="geBtn",d.appendChild(e),d.style.textAlign="center");null!=b&&(b=mxUtils.button(b,function(){null!=f&&f()}),b.className="geBtn",d.appendChild(b));var q=mxUtils.button(c,function(){n&&a.hideDialog();null!=g&&g()});q.className="geBtn";d.appendChild(q);null!=l&&(c=mxUtils.button(l,function(){n&&a.hideDialog();null!=p&&p()}),c.className="geBtn gePrimaryBtn",
 d.appendChild(c));this.init=function(){q.focus()};h.appendChild(d);this.container=h};
-(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="9.3.1";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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";
+(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="9.3.4";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var b=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!b.getContext||!b.getContext("2d"))}catch(q){}try{var a=document.createElement("canvas"),c=new Image;c.onload=function(){try{a.getContext("2d").drawImage(c,0,0);var b=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
@@ -7606,13 +7609,13 @@ var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGra
 g?mxUtils.getXml(g):""}catch(w){}return c};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var a=b.indexOf('<meta charset="utf-8">');0<=a&&(b=b.slice(0,a)+'<meta charset="utf-8"/>'+b.slice(a+23-1,b.length))}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b){a=this.editor.graph;a.model.beginUpdate();
 try{var c=null!=this.pages?this.pages.slice():null,d=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var g=this.updatePageRoot(new DiagramPage(d[e]));null==g.getName()&&g.setName(mxResources.get("pageWithNumber",[e+1]));a.model.execute(new ChangePage(this,g,0==e?g:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),
 this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),a.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)a.model.execute(new ChangePage(this,c[e],null))}finally{a.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,a,c,d,e,g,w,k,l,m){a=null!=
-a?a:this.editor.graph;e=null!=e?e:!1;l=null!=l?l:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==b)return"";var q=b;if("mxfile"!=q.nodeName.toLowerCase()){var t=a.zapGremlins(mxUtils.getXml(b)),q=a.compress(t);if(a.decompress(q)!=t)return t;t=b.ownerDocument.createElement("diagram");mxUtils.setTextContent(t,q);q=b.ownerDocument.createElement("mxfile");q.appendChild(t)}m?(q=q.cloneNode(!0),q.removeAttribute("userAgent"),q.removeAttribute("version"),
-q.removeAttribute("editor"),q.removeAttribute("type")):(q.setAttribute("userAgent",navigator.userAgent),q.setAttribute("version",EditorUi.VERSION),q.setAttribute("editor","www.draw.io"),b=null!=c?c.getMode():this.mode,null!=b&&q.setAttribute("type",b));b=mxUtils.getXml(q);if(!g&&!e&&(w||null!=c&&/(\.html)$/i.test(c.getTitle())))b=this.getHtml2(mxUtils.getXml(q),a,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!=
-App.MODE_BROWSER||(d=null),b=this.getEmbeddedSvg(b,a,d,null,k,l,h);return b};EditorUi.prototype.getXmlFileData=function(b,a){b=null!=b?b:!0;a=null!=a?a:!1;var c=this.editor.getGraphXml(b);if(b&&null!=this.fileNode&&null!=this.currentPage){var f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,f);c=this.fileNode.cloneNode(!1);if(a)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var e=this.pages[d].mapping;
-this.currentPage!=this.pages[d]&&null!=e&&e.needsUpdate&&(f=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(f),f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(f))),mxUtils.setTextContent(this.pages[d].node,f),e.needsUpdate=!1);c.appendChild(this.pages[d].node)}}return c};EditorUi.prototype.getFileData=function(b,a,c,d,e,g,w,k,l){e=null!=e?e:!0;w=null!=w?w:this.getXmlFileData(e,null!=g?g:!1);l=null!=l?l:this.getCurrentFile();g=this.editor.graph;
-if(null!=this.pages&&this.currentPage!=this.pages[0]&&(a||!b&&null!=l&&/(\.svg)$/i.test(l.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(b){return"page"==b?h.getName():"pagenumber"==b?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}b=this.createFileData(w,g,l,window.location.href,b,a,c,d,e,k);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return b};
-EditorUi.prototype.getHtml=function(b,a,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=a){var f=g?a.getGraphBounds():a.getBoundingBox(a.getSelectionCells()),q=a.view.scale;g=Math.floor(f.x/q-a.view.translate.x);q=Math.floor(f.y/q-a.view.translate.y);f=a.background;null==e&&(a=this.getBasenames().join(";"),0<a.length&&(h="https://www.draw.io/embed.js?s="+a));b.setAttribute("x0",g);b.setAttribute("y0",q)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom",
-"1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=d&&b.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&amp;"));b=null!=b?this.editor.graph.zapGremlins(mxUtils.getXml(b)):"";d=this.editor.graph.compress(b);this.editor.graph.decompress(d)!=b&&(d=encodeURIComponent(b));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':
+a?a:this.editor.graph;e=null!=e?e:!1;l=null!=l?l:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==b)return"";var q=b;if("mxfile"!=q.nodeName.toLowerCase()){var t=a.zapGremlins(mxUtils.getXml(b)),q=a.compress(t);if(a.decompress(q)!=t)return t;t=b.ownerDocument.createElement("diagram");t.setAttribute("id",Editor.guid());mxUtils.setTextContent(t,q);q=b.ownerDocument.createElement("mxfile");q.appendChild(t)}m?(q=q.cloneNode(!0),q.removeAttribute("userAgent"),
+q.removeAttribute("version"),q.removeAttribute("editor"),q.removeAttribute("type")):(q.setAttribute("userAgent",navigator.userAgent),q.setAttribute("version",EditorUi.VERSION),q.setAttribute("editor","www.draw.io"),b=null!=c?c.getMode():this.mode,null!=b&&q.setAttribute("type",b));b=mxUtils.getXml(q);if(!g&&!e&&(w||null!=c&&/(\.html)$/i.test(c.getTitle())))b=this.getHtml2(mxUtils.getXml(q),a,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=
+App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),b=this.getEmbeddedSvg(b,a,d,null,k,l,h);return b};EditorUi.prototype.getXmlFileData=function(b,a){b=null!=b?b:!0;a=null!=a?a:!1;var c=this.editor.getGraphXml(b);if(b&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),a)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var d=
+this.pages[f].mapping;if(this.currentPage!=this.pages[f]&&null!=d&&d.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(d.graphModel);d.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[f].node,this.editor.graph.compressNode(e));d.needsUpdate=!1}c.appendChild(this.pages[f].node)}return c};EditorUi.prototype.getFileData=function(b,a,c,d,e,g,w,k,l){e=null!=e?e:!0;w=null!=w?w:this.getXmlFileData(e,null!=g?g:!1);l=null!=l?l:this.getCurrentFile();g=this.editor.graph;if(null!=this.pages&&
+this.currentPage!=this.pages[0]&&(a||!b&&null!=l&&/(\.svg)$/i.test(l.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(b){return"page"==b?h.getName():"pagenumber"==b?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}b=this.createFileData(w,g,l,window.location.href,b,a,c,d,e,k);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return b};EditorUi.prototype.getHtml=
+function(b,a,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=a){var f=g?a.getGraphBounds():a.getBoundingBox(a.getSelectionCells()),q=a.view.scale;g=Math.floor(f.x/q-a.view.translate.x);q=Math.floor(f.y/q-a.view.translate.y);f=a.background;null==e&&(a=this.getBasenames().join(";"),0<a.length&&(h="https://www.draw.io/embed.js?s="+a));b.setAttribute("x0",g);b.setAttribute("y0",q)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize",
+"0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=d&&b.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&amp;"));b=null!=b?this.editor.graph.zapGremlins(mxUtils.getXml(b)):"";d=this.editor.graph.compress(b);this.editor.graph.decompress(d)!=b&&(d=encodeURIComponent(b));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':
 ">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+"</head>\n<body"+(null==e&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==e?'<script type="text/javascript" src="'+h+'">\x3c/script>':
 '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,a,c,d,e){null!=e&&(e=e.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,
 this.currentPage));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+
@@ -7621,44 +7624,45 @@ mxUtils.parseXml(b).documentElement:null;b=null!=a?this.editor.extractGraphModel
 0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(b){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("."));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(a=a+"-"+this.currentPage.getName());return a};EditorUi.prototype.downloadFile=function(b,a,c,d,e,g,w){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e),
 h=f+"."+b;if("xml"==b){var m='<?xml version="1.0" encoding="UTF-8"?>\n'+(a?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(h,b,m,"text/xml")}else if("html"==b)m=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,b,m,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?h=f+".png":"jpeg"==b&&(h=f+".jpg"),this.saveRequest(h,b,mxUtils.bind(this,function(a,c){try{var f=
-this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(a,b,d,c,w);this.editor.graph.pageVisible=f;return h}catch(y){this.handleError(y)}}));else{var q=null,t=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==b){var k=this.editor.graph.background;if(w||k==
-mxConstants.NONE)k=null;var u=this.editor.graph.getSvg(k,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();t('<?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))})))}else h=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();t(b)}),d)}}catch(H){this.handleError(H)}};
+this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(a,b,d,c,w);this.editor.graph.pageVisible=f;return h}catch(z){this.handleError(z)}}));else{var q=null,t=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==b){var u=this.editor.graph.background;if(w||u==
+mxConstants.NONE)u=null;var k=this.editor.graph.getSvg(u,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(k);this.convertImages(k,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();t('<?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))})))}else h=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();t(b)}),d)}}catch(F){this.handleError(F)}};
 EditorUi.prototype.createDownloadRequest=function(b,a,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=a);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==a&&(f="1",a="png",null!=this.pages&&null!=this.currentPage))for(var q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){h="&from="+q;break}q=this.editor.graph.background;"png"==a&&e&&(q=mxConstants.NONE);
 return new mxXmlRequest(EXPORT_URL,"format="+a+h+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=b?"&filename="+encodeURIComponent(b):""))};EditorUi.prototype.setMode=function(b,a){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,a,c){var f=window.location.hash,h=mxUtils.bind(this,function(c){var h=null!=b.data?b.data:"";null!=c&&0<c.length&&(0<h.length&&(h+="\n"),h+=c);c=new LocalFile(this,"csv"!=b.format&&0<h.length?h:this.emptyDiagramXml,
-null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return f};this.fileLoaded(c);"csv"==b.format&&this.importCsv(h,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var d=null!=b.interval?parseInt(b.interval):6E4,e=null,q=mxUtils.bind(this,function(){var a=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
-mxUtils.bind(this,function(b){a===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),g()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(e);e=window.setTimeout(q,d)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();q()}));g();q()}null!=a&&a()});if(null!=b.url&&0<b.url.length){var d=b.url;/^https?:\/\//.test(d)&&
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return f};this.fileLoaded(c);"csv"==b.format&&this.importCsv(h,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var d=null!=b.interval?parseInt(b.interval):6E4,m=null,e=mxUtils.bind(this,function(){var a=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(b){a===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),q()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),q=mxUtils.bind(this,function(){window.clearTimeout(m);m=window.setTimeout(e,d)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){q();e()}));q();e()}null!=a&&a()});if(null!=b.url&&0<b.url.length){var d=b.url;/^https?:\/\//.test(d)&&
 !this.isCorsEnabledForUrl(d)&&(d=PROXY_URL+"?url="+encodeURIComponent(b.url));this.loadUrl(d,mxUtils.bind(this,function(b){h(b)}),mxUtils.bind(this,function(b){null!=c&&c(b)}))}else h("")};EditorUi.prototype.updateDiagram=function(b){function a(b){var a=new mxCellOverlay(b.image||d.warningImage,b.tooltip,b.align,b.valign,b.offset);a.addListener(mxEvent.CLICK,function(a,c){editorUi.alert(b.tooltip)});return a}var c=null;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,
-null!=b&&"updates"==b.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var g=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var w=e.getCell(b.getAttribute("id"));if(null!=w){try{var k=b.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(w,l);else for(var m=l.attributes,v=0;v<m.length;v++)d.setAttributeForCell(w,m[v].nodeName,0<m[v].nodeValue.length?m[v].nodeValue:null)}}catch(y){null!=
-window.console&&console.log("Error in value for "+w.id+": "+y)}try{var x=b.getAttribute("style");null!=x&&d.model.setStyle(w,x)}catch(y){null!=window.console&&console.log("Error in style for "+w.id+": "+y)}try{var p=b.getAttribute("icon");if(null!=p){var n=0<p.length?JSON.parse(p):null;null!=n&&n.append||d.removeCellOverlays(w);null!=n&&d.addCellOverlay(w,a(n))}}catch(y){null!=window.console&&console.log("Error in icon for "+w.id+": "+y)}try{var H=b.getAttribute("geometry");if(null!=H){var H=JSON.parse(H),
-E=d.getCellGeometry(w);if(null!=E){E=E.clone();for(key in H){var F=parseFloat(H[key]);"dx"==key?E.x+=F:"dy"==key?E.y+=F:"dw"==key?E.width+=F:"dh"==key?E.height+=F:E[key]=parseFloat(H[key])}d.model.setGeometry(w,E)}}}catch(y){null!=window.console&&console.log("Error in icon for "+w.id+": "+y)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,e)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&
-(d.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(g=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.fileLoaded=function(b){var a=!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();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML=
-"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()});if(null!=b)try{this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==b.realtime&&(b.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+
-mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));a=!0;this.isOffline()||null==b.getMode()||this.logEvent({category:"File",action:"open",label:b.getMode()});
-if(this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(q){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(q){}}catch(q){null!=window.console&&console.log("error in fileLoaded:",b,q);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!=q&&null!=q.message?":err:"+encodeURIComponent(q.message):"")+(null!=q&&null!=q.stack?"&stack="+encodeURIComponent(q.stack):"")}catch(u){}this.handleError(q,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!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return a};
-EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(b){if(EditorUi.enableLogging)try{var a=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=a+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(h){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(b,a,c,d,e,g,w){};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(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(b){var a=mxUtils.createXmlDocument(),c=a.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));a.appendChild(c);
-return mxUtils.getXml(a)};EditorUi.prototype.closeLibrary=function(b){null!=b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var a=this.sidebar.palettes[b];if(null!=a){for(var c=0;c<a.length;c++)a[c].parentNode.removeChild(a[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var a=this.sidebar.container;
-if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:a.firstChild.nextSibling.nextSibling;var c=a.lastChild,d=c.previousSibling;a.insertBefore(c,b);a.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(b){var a=mxUtils.parseXml(b.getData());if("mxlibrary"==a.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(a.documentElement));this.libraryLoaded(b,c,a.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};
-};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,a,c){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var h=null,d=mxUtils.bind(this,function(a,c){0==a.length&&b.isEditable()?(null==h&&(h=document.createElement("div"),mxUtils.setPrefixedStyle(h.style,
-"borderRadius","6px"),h.style.border="3px dotted lightGray",h.style.textAlign="center",h.style.padding="8px",h.style.color="#B3B3B3",mxUtils.write(h,mxResources.get("dragElementsHere"))),c.appendChild(h)):this.addLibraryEntries(a,c)});if(null!=this.sidebar&&null!=a)for(var e=0;e<a.length;e++)mxUtils.bind(this,function(b){var a=b.data;null!=a&&null!=b.title?this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){a=this.convertDataUri(a);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==b.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+a,b.w,b.h,"",b.title||"",!1,!1,!0)})):null!=b.xml&&null!=b.title&&this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){var a=this.stringToCells(this.editor.graph.decompress(b.xml));return this.sidebar.createVertexTemplateFromCells(a,b.w,b.h,b.title||"",!0,!1,!0)}))})(a[e]);c=null!=c&&0<c.length?c:b.getTitle();var g=this.sidebar.addPalette(b.getHash(),c,!0,mxUtils.bind(this,function(b){d(a,b)}));this.repositionLibrary(f);
-var k=g.parentNode.previousSibling;c=k.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+c);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";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("valign","absmiddle");v.setAttribute("border","0");v.style.margin="0 3px";var x=null;if(".scratchpad"!=b.title||this.closableScratchpad)m.appendChild(v),mxEvent.addListener(v,"click",mxUtils.bind(this,function(a){if(!mxEvent.isConsumed(a)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=x?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(a)}}));if(b.isEditable()){var l=
-this.editor.graph,p=null,n=mxUtils.bind(this,function(c){this.showLibraryDialog(b.getTitle(),g,a,b,b.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){b.setModified(!0);b.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(b.getTitle(),a,b,b.getMode(),!0,!0,function(){null!=p&&null!=p.parentNode&&(p.parentNode.removeChild(p),k.style.paddingRight=18*m.childNodes.length+"px")})):null==x&&(x=v.cloneNode(!1),x.setAttribute("src",IMAGE_PATH+"/download.png"),x.setAttribute("title",mxResources.get("save")),m.insertBefore(x,m.firstChild),mxEvent.addListener(x,"click",mxUtils.bind(this,function(c){this.saveLibrary(b.getTitle(),a,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==x||b.isModified()||
-(k.style.paddingRight=18*m.childNodes.length+"px",x.parentNode.removeChild(x),x=null)});mxEvent.consume(c)})),k.style.paddingRight=18*m.childNodes.length+"px")}),F=mxUtils.bind(this,function(b,c,f,d){b=l.cloneCells(mxUtils.sortCells(l.model.getTopmostCells(b)));for(var e=0;e<b.length;e++){var m=l.getCellGeometry(b[e]);null!=m&&m.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,c.width,c.height,d||"",!0,!1,!1));b={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),
-w:c.width,h:c.height};null!=d&&(b.title=d);a.push(b);E(f);null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)}),L=mxUtils.bind(this,function(b){if(l.isSelectionEmpty())l.getRubberband().isActive()?(l.getRubberband().execute(b),l.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var a=l.getSelectionCells(),c=l.view.getBounds(a),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;F(a,c)}mxEvent.consume(b)});g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler.shape&&(l.graphHandler.shape.node.style.visibility="hidden",null!=h?h.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(b))}),mxUtils.bind(this,function(b){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler&&(g.style.border="3px solid transparent",null!=h&&(h.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,L(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){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!=h&&(h.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)";
-b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.border="3px solid transparent";g.style.cursor="";null!=h&&(h.style.border="3px dotted lightGray");0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,f,e,m,q,v,t,k,w){if(null!=c&&"image/"==f.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+
-this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,q,v),c)],c[0].vertex=!0,F(c,new mxRectangle(0,0,q,v),b,mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null);else{var u=!1,l=mxUtils.bind(this,function(c,f){if(null!=c&&"text/xml"==f){var e=mxUtils.parseXml(c);if("mxlibrary"==e.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(e.documentElement));d(m,g);a=a.concat(m);E(b);
-this.spinner.stop();u=!0}catch(X){}else if("mxfile"==e.documentElement.nodeName)try{for(var q=e.documentElement.getElementsByTagName("diagram"),e=0;e<q.length;e++){var m=mxUtils.getTextContent(q[e]),t=this.stringToCells(this.editor.graph.decompress(m)),v=this.editor.graph.getBoundingBoxFromGeometry(t);F(t,new mxRectangle(0,0,v.width,v.height),b)}u=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)});null!=w&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(w,function(b){l(b,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=w?this.parseFile(w,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?l(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?
-"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):l(c,f)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){null!=h?h.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",g.style.cursor="");b.stopPropagation();b.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",Editor.editImage);v.setAttribute("title",mxResources.get("edit"));m.insertBefore(v,m.firstChild);mxEvent.addListener(v,"click",n);mxEvent.addListener(g,
-"dblclick",function(b){mxEvent.getSource(b)==g&&n(b)});c=v.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));m.insertBefore(c,m.firstChild);mxEvent.addListener(c,"click",L);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
+null!=b&&"updates"==b.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var g=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var w=e.getCell(b.getAttribute("id"));if(null!=w){try{var k=b.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(w,l);else for(var m=l.attributes,v=0;v<m.length;v++)d.setAttributeForCell(w,m[v].nodeName,0<m[v].nodeValue.length?m[v].nodeValue:null)}}catch(z){null!=
+window.console&&console.log("Error in value for "+w.id+": "+z)}try{var x=b.getAttribute("style");null!=x&&d.model.setStyle(w,x)}catch(z){null!=window.console&&console.log("Error in style for "+w.id+": "+z)}try{var p=b.getAttribute("icon");if(null!=p){var n=0<p.length?JSON.parse(p):null;null!=n&&n.append||d.removeCellOverlays(w);null!=n&&d.addCellOverlay(w,a(n))}}catch(z){null!=window.console&&console.log("Error in icon for "+w.id+": "+z)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),
+E=d.getCellGeometry(w);if(null!=E){E=E.clone();for(key in F){var G=parseFloat(F[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(F[key])}d.model.setGeometry(w,E)}}}catch(z){null!=window.console&&console.log("Error in icon for "+w.id+": "+z)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,e)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&
+(d.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(g=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.getCopyFilename=function(b,a){var c=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,
+f="",d=c.lastIndexOf(".");0<=d&&(f=c.substring(d),c=c.substring(0,d));if(a)var e=new Date,d=e.getFullYear(),g=e.getMonth()+1,k=e.getDate(),l=e.getHours(),m=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(d+"-"+g+"-"+k+"-"+l+"-"+m+"-"+e));return c=mxResources.get("copyOf",[c])+f};EditorUi.prototype.fileLoaded=function(b){var a=!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();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()});
+if(null!=b)try{this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==b.realtime&&(b.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||
+this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));a=!0;this.isOffline()||null==b.getMode()||this.logEvent({category:"File",action:"open",label:b.getMode()});if(this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),
+title:b.getTitle(),mode:b.getMode()})}catch(q){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(q){}}catch(q){null!=window.console&&console.log("error in fileLoaded:",b,q);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!=q&&null!=q.message?":err:"+encodeURIComponent(q.message):
+"")+(null!=q&&null!=q.stack?"&stack="+encodeURIComponent(q.stack):"")}catch(u){}this.handleError(q,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!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return a};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(b){if(EditorUi.enableLogging)try{var a=
+null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=a+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(h){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(b,a,c,d,e,g,w){};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(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(b){var a=mxUtils.createXmlDocument(),c=a.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));a.appendChild(c);return mxUtils.getXml(a)};EditorUi.prototype.closeLibrary=function(b){null!=b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!=
+LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var a=this.sidebar.palettes[b];if(null!=a){for(var c=0;c<a.length;c++)a[c].parentNode.removeChild(a[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var a=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=
+null!=b?b:a.firstChild.nextSibling.nextSibling;var c=a.lastChild,d=c.previousSibling;a.insertBefore(c,b);a.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(b){var a=mxUtils.parseXml(b.getData());if("mxlibrary"==a.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(a.documentElement));this.libraryLoaded(b,c,a.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=
+function(b,a,c){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var h=null,d=mxUtils.bind(this,function(a,c){0==a.length&&b.isEditable()?(null==h&&(h=document.createElement("div"),mxUtils.setPrefixedStyle(h.style,"borderRadius","6px"),h.style.border="3px dotted lightGray",h.style.textAlign=
+"center",h.style.padding="8px",h.style.color="#B3B3B3",mxUtils.write(h,mxResources.get("dragElementsHere"))),c.appendChild(h)):this.addLibraryEntries(a,c)});if(null!=this.sidebar&&null!=a)for(var e=0;e<a.length;e++)mxUtils.bind(this,function(b){var a=b.data;null!=a&&null!=b.title?this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){a=this.convertDataUri(a);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==b.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+
+"image="+a,b.w,b.h,"",b.title||"",!1,!1,!0)})):null!=b.xml&&null!=b.title&&this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){var a=this.stringToCells(this.editor.graph.decompress(b.xml));return this.sidebar.createVertexTemplateFromCells(a,b.w,b.h,b.title||"",!0,!1,!0)}))})(a[e]);c=null!=c&&0<c.length?c:b.getTitle();var g=this.sidebar.addPalette(b.getHash(),c,!0,mxUtils.bind(this,function(b){d(a,b)}));this.repositionLibrary(f);var k=g.parentNode.previousSibling;c=k.getAttribute("title");null!=
+c&&0<c.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+c);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";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("valign","absmiddle");
+v.setAttribute("border","0");v.style.margin="0 3px";var l=null;if(".scratchpad"!=b.title||this.closableScratchpad)m.appendChild(v),mxEvent.addListener(v,"click",mxUtils.bind(this,function(a){if(!mxEvent.isConsumed(a)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=l?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(a)}}));if(b.isEditable()){var p=this.editor.graph,n=null,F=mxUtils.bind(this,function(c){this.showLibraryDialog(b.getTitle(),
+g,a,b,b.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){b.setModified(!0);b.isAutosave()?(null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n),n=v.cloneNode(!1),n.setAttribute("src",Editor.spinImage),n.setAttribute("title",mxResources.get("saving")),n.style.cursor="default",n.style.marginRight="2px",n.style.marginTop="-2px",m.insertBefore(n,m.firstChild),k.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(b.getTitle(),a,b,b.getMode(),!0,!0,function(){null!=n&&null!=
+n.parentNode&&(n.parentNode.removeChild(n),k.style.paddingRight=18*m.childNodes.length+"px")})):null==l&&(l=v.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",mxResources.get("save")),m.insertBefore(l,m.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,function(c){this.saveLibrary(b.getTitle(),a,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==l||b.isModified()||(k.style.paddingRight=18*m.childNodes.length+"px",l.parentNode.removeChild(l),
+l=null)});mxEvent.consume(c)})),k.style.paddingRight=18*m.childNodes.length+"px")}),G=mxUtils.bind(this,function(b,c,f,d){b=p.cloneCells(mxUtils.sortCells(p.model.getTopmostCells(b)));for(var m=0;m<b.length;m++){var e=p.getCellGeometry(b[m]);null!=e&&e.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,c.width,c.height,d||"",!0,!1,!1));b={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:c.width,h:c.height};null!=d&&(b.title=d);a.push(b);
+E(f);null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)}),L=mxUtils.bind(this,function(b){if(p.isSelectionEmpty())p.getRubberband().isActive()?(p.getRubberband().execute(b),p.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var a=p.getSelectionCells(),c=p.view.getBounds(a),f=p.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=p.view.translate.x;c.y-=p.view.translate.y;G(a,c)}mxEvent.consume(b)});
+g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="hidden",null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)",g.style.cursor="copy",p.panningManager.stop(),p.autoScroll=!1,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!1),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility=
+"hidden"),mxEvent.consume(b))}),mxUtils.bind(this,function(b){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler&&(g.style.border="3px solid transparent",null!=h&&(h.style.border="3px dotted lightGray"),g.style.cursor="default",this.sidebar.showTooltips=!0,p.panningManager.stop(),p.graphHandler.reset(),p.isMouseDown=!1,p.autoScroll=!0,L(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){p.isMouseDown&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility=
+"visible",g.style.border="3px solid transparent",g.style.cursor="",p.autoScroll=!0,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!0),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="visible"),null!=h&&(h.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)";b.dataTransfer.dropEffect="copy";g.style.cursor=
+"copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.border="3px solid transparent";g.style.cursor="";null!=h&&(h.style.border="3px dotted lightGray");0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,f,m,e,q,v,t,w,k){if(null!=c&&"image/"==f.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c),
+c=[new mxCell("",new mxGeometry(0,0,q,v),c)],c[0].vertex=!0,G(c,new mxRectangle(0,0,q,v),b,mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null);else{var u=!1,l=mxUtils.bind(this,function(c,f){if(null!=c&&"text/xml"==f){var m=mxUtils.parseXml(c);if("mxlibrary"==m.documentElement.nodeName)try{var e=JSON.parse(mxUtils.getTextContent(m.documentElement));d(e,g);a=a.concat(e);E(b);this.spinner.stop();
+u=!0}catch(X){}else if("mxfile"==m.documentElement.nodeName)try{for(var q=m.documentElement.getElementsByTagName("diagram"),m=0;m<q.length;m++){var e=mxUtils.getTextContent(q[m]),t=this.stringToCells(this.editor.graph.decompress(e)),v=this.editor.graph.getBoundingBoxFromGeometry(t);G(t,new mxRectangle(0,0,v.width,v.height),b)}u=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=h&&
+null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)});null!=k&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(k,function(b){l(b,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=k?this.parseFile(k,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?l(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":
+"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):l(c,f)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){null!=h?h.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",g.style.cursor="");b.stopPropagation();b.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",Editor.editImage);v.setAttribute("title",mxResources.get("edit"));m.insertBefore(v,m.firstChild);mxEvent.addListener(v,"click",F);mxEvent.addListener(g,
+"dblclick",function(b){mxEvent.getSource(b)==g&&F(b)});c=v.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));m.insertBefore(c,m.firstChild);mxEvent.addListener(c,"click",L);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c,
 mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),m.insertBefore(c,m.firstChild))}k.appendChild(m);k.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,a){for(var c=0;c<b.length;c++){var f=b[c],d=f.data;if(null!=d){var d=this.convertDataUri(d),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==f.aspect&&(e+="aspect=fixed;");a.appendChild(this.sidebar.createVertexTemplate(e+
 "image="+d,f.w,f.h,"",f.title||"",!1,!1,!0))}else null!=f.xml&&(d=this.stringToCells(this.editor.graph.decompress(f.xml)),0<d.length&&a.appendChild(this.sidebar.createVertexTemplateFromCells(d,f.w,f.h,f.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};"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 b=document.getElementById("geFooter");if(null!=b){b.style.visibility="visible";var a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",Dialog.prototype.closeImage);a.setAttribute("title",mxResources.get("hide"));b.appendChild(a);mxClient.IS_QUIRKS&&(a.style.position="relative",a.style.styleFloat="right",a.style.top="-30px",a.style.left="164px",a.style.cursor="pointer");mxEvent.addListener(a,
@@ -7671,7 +7675,7 @@ Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAM
 b.style.position="absolute";b.style.overflow="hidden";b.style.borderWidth="3px";var a=document.createElement("a");a.setAttribute("href","javascript:void(0);");a.className="geTitle";a.style.height="100%";a.style.paddingTop="9px";mxUtils.write(a,mxResources.get("moreShapes")+"...");mxEvent.addListener(a,"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(a);return b};EditorUi.prototype.handleError=function(b,a,c){var f=null!=this.spinner&&null!=
 this.spinner.pause?this.spinner.pause():function(){},h=null!=b&&null!=b.error?b.error:b;if(null!=h||null!=a){b=mxUtils.htmlEntities(mxResources.get("unknownError"));var d=mxResources.get("ok"),e=null;a=null!=a?a:mxResources.get("error");if(null!=h)if(null!=h.retry&&(d=mxResources.get("cancel"),e=function(){f();h.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.FORBIDDEN)b=mxUtils.htmlEntities(mxResources.get("forbidden"));
 else if(404==h.code||404==h.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.NOT_FOUND){b=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var g=window.location.hash;null!=g&&"#G"==g.substring(0,2)&&(g=g.substring(2),b+=' <a href="https://drive.google.com/open?id='+g+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=h.message?b=mxUtils.htmlEntities(h.message):
-null!=h.response&&null!=h.response.error?b=mxUtils.htmlEntities(h.response.error):"undefined"!==window.App&&(h.code==App.ERROR_TIMEOUT?b=mxUtils.htmlEntities(mxResources.get("timeout")):h.code==App.ERROR_BUSY&&(b=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(a,b,d,c,e)}else null!=c&&c()};EditorUi.prototype.showError=function(b,a,c,d,e,g,k,l,p,m,v,x){b=new ErrorDialog(this,b,a,c||mxResources.get("ok"),d,e,g,k,x,l,p);this.showDialog(b.container,m||340,v||150,!0,!1);b.init()};EditorUi.prototype.alert=
+null!=h.response&&null!=h.response.error?b=mxUtils.htmlEntities(h.response.error):"undefined"!==window.App&&(h.code==App.ERROR_TIMEOUT?b=mxUtils.htmlEntities(mxResources.get("timeout")):h.code==App.ERROR_BUSY&&(b=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(a,b,d,c,e)}else null!=c&&c()};EditorUi.prototype.showError=function(b,a,c,d,e,g,w,k,l,m,v,x){b=new ErrorDialog(this,b,a,c||mxResources.get("ok"),d,e,g,w,x,k,l);this.showDialog(b.container,m||340,v||150,!0,!1);b.init()};EditorUi.prototype.alert=
 function(b,a){var c=new ErrorDialog(this,null,b,mxResources.get("ok"),a);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(b,a,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,b,function(){f();null!=a&&a()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(b){this.currentFile=b};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(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};EditorUi.prototype.createImageDataUri=function(b,a,c){var f=b.toDataURL("image/"+c);if(6>=f.length||f==b.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=a&&(f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(a))));
 return f};EditorUi.prototype.saveCanvas=function(b,a,c){var f="jpeg"==c?"jpg":c,h=this.getBaseFilename()+"."+f;b=this.createImageDataUri(b,a,c);this.saveData(h,f,b.substring(b.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};
@@ -7706,31 +7710,31 @@ p||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)
 f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(e);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");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);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==c&&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())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var v=this.addLinkSection(f),l=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";
-t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value="100%";f.appendChild(t);var p=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,n=n=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),F=this.addCheckbox(f,mxResources.get("lightbox"),!0),L=this.addEditButton(f,F),y=L.getEditInput();y.style.marginBottom="16px";mxEvent.addListener(F,"change",function(){F.checked?y.removeAttribute("disabled"):
-y.setAttribute("disabled","disabled");y.checked&&F.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,t.value,v.getTarget(),v.getColor(),p.checked,n.checked,E.checked,F.checked,L.getLink())}),null,b,a);this.showDialog(b.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,a,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace=
+t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value="100%";f.appendChild(t);var p=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,n=n=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),L=this.addEditButton(f,G),z=L.getEditInput();z.style.marginBottom="16px";mxEvent.addListener(G,"change",function(){G.checked?z.removeAttribute("disabled"):
+z.setAttribute("disabled","disabled");z.checked&&G.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,t.value,v.getTarget(),v.getColor(),p.checked,n.checked,E.checked,G.checked,L.getLink())}),null,b,a);this.showDialog(b.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,a,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace=
 "nowrap";var h=document.createElement("h3");mxUtils.write(h,b||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var k=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";b=0;if(null!=k&&k.constructor==window.DriveFile&&!a){b=80;var h="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 v=document.createElement("div");v.style.whiteSpace="normal";mxUtils.write(v,mxResources.get("linkAccountRequired"));m.appendChild(v);v=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));v.style.marginTop="12px";v.className="geBtn";m.appendChild(v);f.appendChild(m);v=document.createElement("a");v.style.paddingLeft="12px";v.style.color="gray";v.style.fontSize="11px";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("check"));
-m.appendChild(v);mxEvent.addListener(v,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var l=null,q=null;if(null!=c||null!=d)b+=30,mxUtils.write(f,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%",f.appendChild(l),mxUtils.write(f,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",f.appendChild(q),mxUtils.br(f);var t=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var u=null;
-if(null==k||k.constructor!=window.DriveFile||a)u=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var p=this.addCheckbox(f,mxResources.get("lightbox"),!0),n=this.addEditButton(f,p),L=n.getEditInput(),y=this.addCheckbox(f,mxResources.get("layers"),!0);y.style.marginLeft=L.style.marginLeft;y.style.marginBottom="16px";y.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(y.removeAttribute("disabled"),L.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),L.setAttribute("disabled",
-"disabled"));L.checked&&p.checked?n.getEditSelect().removeAttribute("disabled"):n.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){e(t.getTarget(),t.getColor(),null==u?!0:u.checked,p.checked,n.getLink(),y.checked,null!=l?l.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),h);this.showDialog(a.container,340,254+b,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():
+m.appendChild(v);mxEvent.addListener(v,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,l=null;if(null!=c||null!=d)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),
+q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.width="50px",l.style.marginLeft="6px",l.style.marginBottom="10px",l.value=d+"px",f.appendChild(l),mxUtils.br(f);var t=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var u=null;
+if(null==k||k.constructor!=window.DriveFile||a)u=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var p=this.addCheckbox(f,mxResources.get("lightbox"),!0),n=this.addEditButton(f,p),L=n.getEditInput(),z=this.addCheckbox(f,mxResources.get("layers"),!0);z.style.marginLeft=L.style.marginLeft;z.style.marginBottom="16px";z.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(z.removeAttribute("disabled"),L.removeAttribute("disabled")):(z.setAttribute("disabled","disabled"),L.setAttribute("disabled",
+"disabled"));L.checked&&p.checked?n.getEditSelect().removeAttribute("disabled"):n.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){e(t.getTarget(),t.getColor(),null==u?!0:u.checked,p.checked,n.getLink(),z.checked,null!=q?q.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),h);this.showDialog(a.container,340,254+b,!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)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,a,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),
 !0),e=this.editor.graph,k=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=k&&(k.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=k?k.checked:!1)}),null,b,a);this.showDialog(b.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(b,a,c,d,e,g,k,l){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=
 this.editor.graph,v="jpeg"==l?196:300,q=document.createElement("h3");mxUtils.write(q,b);q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(q);mxUtils.write(f,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%";f.appendChild(t);mxUtils.write(f,mxResources.get("borderWidth")+":");
-var w=document.createElement("input");w.setAttribute("type","text");w.style.marginRight="16px";w.style.width="60px";w.style.marginLeft="4px";w.value=this.lastExportBorder||"0";f.appendChild(w);mxUtils.br(f);var u=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=l),p=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.isSelectionEmpty()),n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight=
-"8px";n.style.marginLeft="24px";n.setAttribute("disabled","disabled");n.setAttribute("type","checkbox");g&&(f.appendChild(n),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),v+=26,mxEvent.addListener(p,"change",function(){p.checked?n.removeAttribute("disabled"):n.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(n.setAttribute("checked","checked"),n.defaultChecked=!0);var z=this.addCheckbox(f,mxResources.get("shadow"),h.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");a&&(f.appendChild(y),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),v+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),G=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,G?mxResources.get("allPages"):"",G,!G,null,"jpeg"!=l);M.style.marginLeft="24px";M.style.marginBottom="16px";G||(M.style.display=
-"none");mxEvent.addListener(D,"change",function(){D.checked&&G?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});k&&G||M.setAttribute("disabled","disabled");var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");
-mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(J),mxUtils.br(f),mxUtils.br(f),v+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=w.value;this.lastExportZoom=t.value;e(t.value,u.checked,!p.checked,z.checked,D.checked,y.checked,w.value,n.checked,
+var w=document.createElement("input");w.setAttribute("type","text");w.style.marginRight="16px";w.style.width="60px";w.style.marginLeft="4px";w.value=this.lastExportBorder||"0";f.appendChild(w);mxUtils.br(f);var p=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=l),u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.isSelectionEmpty()),n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight=
+"8px";n.style.marginLeft="24px";n.setAttribute("disabled","disabled");n.setAttribute("type","checkbox");g&&(f.appendChild(n),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),v+=26,mxEvent.addListener(u,"change",function(){u.checked?n.removeAttribute("disabled"):n.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(n.setAttribute("checked","checked"),n.defaultChecked=!0);var y=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible),z=document.createElement("input");z.style.marginTop=
+"16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||z.setAttribute("disabled","disabled");a&&(f.appendChild(z),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),v+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),H=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=l);M.style.marginLeft="24px";M.style.marginBottom="16px";H||(M.style.display=
+"none");mxEvent.addListener(D,"change",function(){D.checked&&H?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});k&&H||M.setAttribute("disabled","disabled");var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank");
+mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(J),mxUtils.br(f),mxUtils.br(f),v+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=w.value;this.lastExportZoom=t.value;e(t.value,p.checked,!u.checked,y.checked,D.checked,z.checked,w.value,n.checked,
 !M.checked,J.value)}),null,c,d);this.showDialog(c.container,340,v,!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(b,a,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=this.editor.graph;if(null!=a){var g=document.createElement("h3");mxUtils.write(g,a);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),m=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),v=this.addCheckbox(f,c),l=this.addCheckbox(f,mxResources.get("lightbox"),!0),q=this.addEditButton(f,l),t=q.getEditInput(),p=1<h.model.getChildCount(h.model.getRoot()),n=this.addCheckbox(f,mxResources.get("layers"),p,!p);n.style.marginLeft=t.style.marginLeft;n.style.marginBottom="12px";n.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked?
-(p&&n.removeAttribute("disabled"),t.removeAttribute("disabled")):(n.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&l.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,m.checked,v.checked,l.checked,q.getLink(),n.checked)}),null,mxResources.get("embed"),e);this.showDialog(a.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
+f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),m=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),v=this.addCheckbox(f,c),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),l=this.addEditButton(f,q),t=l.getEditInput(),p=1<h.model.getChildCount(h.model.getRoot()),n=this.addCheckbox(f,mxResources.get("layers"),p,!p);n.style.marginLeft=t.style.marginLeft;n.style.marginBottom="12px";n.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?
+(p&&n.removeAttribute("disabled"),t.removeAttribute("disabled")):(n.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&q.checked?l.getEditSelect().removeAttribute("disabled"):l.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,m.checked,v.checked,q.checked,l.getLink(),n.checked)}),null,mxResources.get("embed"),e);this.showDialog(a.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
 function(b,a,c,d,e,g,k,l){function f(a){var f=" ",m="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");
 b&&(m+="max-width:100%;");var v="";c&&(v=' width="'+Math.round(h.width)+'" height="'+Math.round(h.height)+'"');k('<img src="'+a+'"'+v+(""!=m?' style="'+m+'"':"")+f+"/>")}var h=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(b){var a=d?this.getFileData(!0):null;b=this.createImageDataUri(b,a,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){l({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,a);else if(a=this.getFileData(!0),
 h.width*h.height<=MAX_AREA&&a.length<=MAX_REQUEST_SIZE){var v="";c&&(v="&w="+Math.round(2*h.width)+"&h="+Math.round(2*h.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+v+"&xml="+encodeURIComponent(a));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&299>=q.getStatus()?f("data:image/png;base64,"+q.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,
-a,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var m=0;m<h.length;m++){var v=h[m].getAttribute("href");null!=v&&"#"==v.charAt(0)&&"_blank"==h[m].getAttribute("target")&&h[m].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));a&&this.editor.graph.addSvgShadow(f);if(c){var l=" ",q="";d&&(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"+
-(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",q+="cursor:pointer;");b&&(q+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(b){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=q?' style="'+q+'"':"")+l+"/>")}))}else q="",d&&(f.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"+
-(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),b&&(b=parseInt(f.getAttribute("width")),a=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+b+" "+a),q+="max-width:100%;max-height:"+a+"px;",f.removeAttribute("height")),""!=q&&f.setAttribute("style",q),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(b){b=Math.floor((new Date-b)/1E3);var a=Math.floor(b/31536E3);if(1<a)return a+" "+mxResources.get("years");a=Math.floor(b/2592E3);if(1<a)return a+
+a,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var m=0;m<h.length;m++){var v=h[m].getAttribute("href");null!=v&&"#"==v.charAt(0)&&"_blank"==h[m].getAttribute("target")&&h[m].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));a&&this.editor.graph.addSvgShadow(f);if(c){var q=" ",l="";d&&(q="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":"")+(g?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");b&&(l+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(b){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=l?' style="'+l+'"':"")+q+"/>")}))}else l="",d&&(f.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"+
+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),b&&(b=parseInt(f.getAttribute("width")),a=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+b+" "+a),l+="max-width:100%;max-height:"+a+"px;",f.removeAttribute("height")),""!=l&&f.setAttribute("style",l),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(b){b=Math.floor((new Date-b)/1E3);var a=Math.floor(b/31536E3);if(1<a)return a+" "+mxResources.get("years");a=Math.floor(b/2592E3);if(1<a)return a+
 " "+mxResources.get("months");a=Math.floor(b/86400);if(1<a)return a+" "+mxResources.get("days");a=Math.floor(b/3600);if(1<a)return a+" "+mxResources.get("hours");a=Math.floor(b/60);return 1<a?a+" "+mxResources.get("minutes"):1==a?a+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(b,a,c,d){b.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(a),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this,
 function(){d()}))}),0)):d()};EditorUi.prototype.decodeNodeIntoGraph=function(b,a){if(null!=b){var c=null;if("diagram"==b.nodeName)c=b;else if("mxfile"==b.nodeName){var f=b.getElementsByTagName("diagram");if(0<f.length){var c=f[0],d=a.getGlobalVariable;a.getGlobalVariable=function(b){return"page"==b?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:d.apply(this,arguments)}}}null!=c&&(f=a.decompress(mxUtils.getTextContent(c)),null!=f&&0<f.length&&(b=mxUtils.parseXml(f).documentElement))}f=
 this.editor.graph;try{this.editor.graph=a,this.editor.setGraphXml(b)}catch(u){}finally{this.editor.graph=f}return b};EditorUi.prototype.getEmbeddedPng=function(b,a,c){var f=this.editor.graph,d=null;if(null!=c&&0<c.length)f=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(f.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),f),d=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var f=this.createTemporaryGraph(f.getStylesheet()),
@@ -7743,38 +7747,38 @@ e[b]){e[b]=b;d++;var a="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.te
 b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(a){e[b]=a;d--;g()}),mxUtils.bind(this,function(b){d--;g()}),!0,null,"data:"+a+";charset=utf-8;base64,")}})(a(c[k].substring(0,l)),p)}}else b()};EditorUi.prototype.exportToCanvas=function(b,a,c,d,e,g,k,l,p,m,v,x,n,B){g=null!=g?g:!0;x=null!=x?x:this.editor.graph;n=null!=n?n:0;var f=p?null:x.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==p&&
 (f=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(f,null,null,B,null,null!=k?k:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),m=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=a&&(l=g?Math.min(1,Math.min(3*a/(4*k),a/m)):a/m);m=Math.ceil(l*m)+2*n;k=Math.ceil(l*k)+2*n;h.setAttribute("width",m);h.setAttribute("height",k);var v=h.getContext("2d");null!=
 f&&(v.beginPath(),v.rect(0,0,m,k),v.fillStyle=f,v.fill());v.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){v.drawImage(d,n/l,n/l);b(h)},0):(v.drawImage(d,n/l,n/l),b(h))}catch(J){null!=e&&e(J)}});d.onerror=function(b){null!=e&&e(b)};try{m&&this.editor.graph.addSvgShadow(c);var h=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var b=document.createElement("style");b.setAttribute("type","text/css");b.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(b)}this.convertMath(x,
-c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(y){null!=e&&e(y)}}),c,v)};EditorUi.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var a=b.convert,c=this;b.convert=function(f){if(null!=f){var d="http://"==f.substring(0,7)||"https://"==f.substring(0,8);d&&!navigator.onLine?f=c.svgBrokenImage.src:!d||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"!=
+c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(z){null!=e&&e(z)}}),c,v)};EditorUi.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var a=b.convert,c=this;b.convert=function(f){if(null!=f){var d="http://"==f.substring(0,7)||"https://"==f.substring(0,8);d&&!navigator.onLine?f=c.svgBrokenImage.src:!d||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"!=
 f.substring(0,19)&&(f=a.apply(this,arguments)):f=PROXY_URL+"?url="+encodeURIComponent(f)}return f};return b};EditorUi.prototype.convertImages=function(b,a,c,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=c||{};c=mxUtils.bind(this,function(c,h){for(var g=b.getElementsByTagName(c),m=0;m<g.length;m++)mxUtils.bind(this,function(c){var m=d.convert(c.getAttribute(h));if(null!=m&&"data:"!=m.substring(0,5)){var g=e[m];null==g?(f++,this.convertImageToDataUri(m,function(d){null!=d&&(e[m]=d,c.setAttribute(h,
 d));f--;0==f&&a(b)})):c.setAttribute(h,g)}else null!=m&&c.setAttribute(h,m)})(g[m])});c("image","xlink:href");c("img","src");0==f&&a(b)};EditorUi.prototype.loadUrl=function(b,a,c,d,e,g){try{var f=d||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b);e=null!=e?e:!0;var h=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=a){var d=b.getText();if(f){if((9==document.documentMode||10==document.documentMode)&&
 "undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var d=Array(b.length),e=0;e<b.length;e++)d[e]=String.fromCharCode(b[e]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}a(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},b)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(A){null!=c&&c(A)}};EditorUi.prototype.isCorsEnabledForUrl=
 function(b){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)||"https://cdn.rawgit.com/"===b.substring(0,23)||"https://rawgit.com/"===b.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(b)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(b)||/^https?:\/\/[^\/]*\.github\.io\//.test(b)};EditorUi.prototype.convertImageToDataUri=
 function(b,a){if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){a(this.createSvgDataUri(b.getText()))}),function(){a(this.svgBrokenImage.src)});else{var c=new Image,f=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var b=document.createElement("canvas"),d=b.getContext("2d");b.height=c.height;b.width=c.width;d.drawImage(c,0,0);try{a(b.toDataURL())}catch(w){a(f.svgBrokenImage.src)}};c.onerror=function(){a(f.svgBrokenImage.src)};c.src=b}};EditorUi.prototype.importXml=
 function(b,a,c,d,e){a=null!=a?a:0;c=null!=c?c:0;var f=[];try{var h=this.editor.graph;if(null!=b&&0<b.length){var g=mxUtils.parseXml(b),k=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)k=mxUtils.parseXml(h.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){h.model.beginUpdate();try{for(b=0;b<m.length;b++){m[b].removeAttribute("id");var l=this.updatePageRoot(new DiagramPage(m[b])),
-q=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[q+1]));h.model.execute(new ChangePage(this,l,l,q))}}finally{h.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(f=h.importGraphModel(k,a,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,a,c,d){d=null!=
-d?d:b.name;c=null!=c?c:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var f=new FormData;f.append("file1",b,d);var e=new XMLHttpRequest;e.open("POST",VSD_CONVERT_URL);e.responseType="blob";e.onreadystatechange=mxUtils.bind(this,function(){if(4==e.readyState)if(200<=e.status&&299>=e.status)try{e.response.name=d,this.doImportVisio(e.response,a,c)}catch(z){c(z)}else c({})});
-e.send(f)}else try{this.doImportVisio(b,a,c)}catch(z){c(z)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(){var b=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()?b():(this.loadingExtensions=
-!0,mxscript("js/extensions.min.js",b))};EditorUi.prototype.convertLucidChart=function(b,a,c){var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{a(LucidImporter.importState(JSON.parse(b)))}catch(q){c(q)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(f,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",
-f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.insertAsPreText=function(b,a,c){var f=this.editor.graph,d=null;f.getModel().beginUpdate();try{d=f.insertVertex(null,null,"<pre>"+b+"</pre>",a,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),f.updateCellSize(d,!0)}finally{f.getModel().endUpdate()}return d};EditorUi.prototype.insertTextAt=function(b,a,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,a,c,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var f=this.editor.graph;if("data:image/png;base64,"==b.substring(0,22)){var h=this.extractGraphModelFromPng(b),m=this.importXml(h,a,c,g,!0);if(0<m.length)return m}if("data:image/svg+xml;"==b.substring(0,
-19))try{if(h=null,"data:image/svg+xml;base64,"==b.substring(0,26)?(h=b.substring(b.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(b.substring(b.indexOf(",")+1)),m=this.importXml(h,a,c,g,!0),0<m.length)return m}catch(v){}this.loadImage(b,mxUtils.bind(this,function(d){if("data:"==b.substring(0,5))this.resizeImage(d,b,mxUtils.bind(this,function(b,d,e){f.setSelectionCell(f.insertVertex(null,null,"",f.snap(a),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-this.convertDataUri(b)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),h=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(a),f.snap(c),h,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),
-null,b,f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{b=this.editor.graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,a,c,g);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,function(b){this.editor.graph.setSelectionCells(this.importXml(b,a,c,g))}),mxUtils.bind(this,function(b){this.handleError(b)}));
-else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b)),e.value=b,f.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)&&
+q=this.pages.length;null==l.getName()&&(l.setName(mxResources.get("pageWithNumber",[q+1])),l.needsUpdate=!0);h.model.execute(new ChangePage(this,l,l,q))}}finally{h.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(f=h.importGraphModel(k,a,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,
+a,c,d){d=null!=d?d:b.name;c=null!=c?c:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var f=new FormData;f.append("file1",b,d);var e=new XMLHttpRequest;e.open("POST",VSD_CONVERT_URL);e.responseType="blob";e.onreadystatechange=mxUtils.bind(this,function(){if(4==e.readyState)if(200<=e.status&&299>=e.status)try{e.response.name=d,this.doImportVisio(e.response,a,
+c)}catch(y){c(y)}else c({})});e.send(f)}else try{this.doImportVisio(b,a,c)}catch(y){c(y)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(){var b=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()?
+b():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",b))};EditorUi.prototype.convertLucidChart=function(b,a,c){var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{a(LucidImporter.importState(JSON.parse(b)))}catch(q){c(q)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(f,0):(this.loadingExtensions=!0,"1"==urlParams.dev?
+mxscript("js/diagramly/Extensions.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.insertAsPreText=function(b,a,c){var f=this.editor.graph,d=null;f.getModel().beginUpdate();try{d=f.insertVertex(null,null,"<pre>"+b+"</pre>",a,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),f.updateCellSize(d,!0)}finally{f.getModel().endUpdate()}return d};EditorUi.prototype.insertTextAt=function(b,a,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,a,c,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var f=this.editor.graph;if("data:image/png;base64,"==b.substring(0,22)){var h=this.extractGraphModelFromPng(b),m=this.importXml(h,a,
+c,g,!0);if(0<m.length)return m}if("data:image/svg+xml;"==b.substring(0,19))try{if(h=null,"data:image/svg+xml;base64,"==b.substring(0,26)?(h=b.substring(b.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(b.substring(b.indexOf(",")+1)),m=this.importXml(h,a,c,g,!0),0<m.length)return m}catch(v){}this.loadImage(b,mxUtils.bind(this,function(d){if("data:"==b.substring(0,5))this.resizeImage(d,b,mxUtils.bind(this,function(b,d,e){f.setSelectionCell(f.insertVertex(null,
+null,"",f.snap(a),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(b)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),h=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(a),f.snap(c),h,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+b+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,b,f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{b=this.editor.graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,a,c,g);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,
+function(b){this.editor.graph.setSelectionCells(this.importXml(b,a,c,g))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b)),e.value=b,f.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)&&
 f.setLinkForCell(e,e.value),e.geometry.width+=f.gridSize,e.geometry.height+=f.gridSize}finally{f.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(b){var a=-1;do b/=1024,a++;while(1024<b);return Math.max(b,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[a]};EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var a=b.indexOf(";");0<a&&(b=b.substring(0,a)+b.substring(b.indexOf(",",a+1)))}return b};EditorUi.prototype.isRemoteFileFormat=
 function(b,a){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(b)};EditorUi.prototype.isLucidChartData=function(b){return null!=b&&'{"state":"{\\"Properties\\":'==b.substring(0,26)};EditorUi.prototype.importLocalFile=function(b,a){if(b&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&
 this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!a){var f=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,a){if(null!=a&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(a)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b)}),
-null,a)}else this.editor.graph.setSelectionCells(this.importXml(b))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!a){var d=this.dialog,e=d.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=f;e.apply(d,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(b,a,c,d,e,g,k,l,p,m,v){m=null!=m?m:!0;var f=!1,h=null,q=mxUtils.bind(this,function(a){var b=
-null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,k)):b=this.importXml(a,c,d,m);null!=l&&l(b)});"image"==a.substring(0,5)?(p=!1,"image/png"==a.substring(0,9)&&(a=v?null:this.extractGraphModelFromPng(b),null!=a&&0<a.length&&(h=this.importXml(a,c,d,m),p=!0)),p||(h=this.editor.graph,a=b.indexOf(";"),0<a&&(b=b.substring(0,a)+b.substring(b.indexOf(",",a+1))),m&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-b+";")])):/(\.*<graphml )/.test(b)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(b,mxUtils.bind(this,function(a){a=this.importXml(a,c,d,m);null!=l&&l(a)})):null!=p&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(p,q)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,k)?(f=!0,this.parseFile(null!=p?p:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<=
-a.status&&299>=a.status?q(a.responseText):null!=l&&l(null))}),k)):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(h=this.insertTextAt(this.validateFileData(b),c,d,!0,null,m));f||null==l||l(h);return h};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,c,d,e,g,k,l,p,n,m,v,x){c=null!=c?c:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;m=null!=m?m:this.maxImageBytes;var b=null!=c&&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,
+null,a)}else this.editor.graph.setSelectionCells(this.importXml(b))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!a){var d=this.dialog,e=d.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=f;e.apply(d,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(b,a,c,d,e,g,k,l,p,m,v){m=null!=m?m:!0;var f=!1,h=null,q=mxUtils.bind(this,function(b){var a=
+null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,k)):a=this.importXml(b,c,d,m);null!=l&&l(a)});"image"==a.substring(0,5)?(p=!1,"image/png"==a.substring(0,9)&&(a=v?null:this.extractGraphModelFromPng(b),null!=a&&0<a.length&&(h=this.importXml(a,c,d,m),p=!0)),p||(h=this.editor.graph,a=b.indexOf(";"),0<a&&(b=b.substring(0,a)+b.substring(b.indexOf(",",a+1))),m&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+b+";")])):/(\.*<graphml )/.test(b)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(b,mxUtils.bind(this,function(b){b=this.importXml(b,c,d,m);null!=l&&l(b)})):null!=p&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(p,q)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,k)?(f=!0,this.parseFile(null!=p?p:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=
+b.status&&299>=b.status?q(b.responseText):null!=l&&l(null))}),k)):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(h=this.insertTextAt(this.validateFileData(b),c,d,!0,null,m));f||null==l||l(h);return h};EditorUi.prototype.base64Encode=function(b){for(var a="",c=0,d=b.length,e,g,k;c<d;){e=b.charCodeAt(c++)&255;if(c==d){a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);
+a+="==";break}g=b.charCodeAt(c++);if(c==d){a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);a+="=";break}k=b.charCodeAt(c++);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+3)<<4|(g&240)>>4);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(k&192)>>6);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return a};EditorUi.prototype.importFiles=function(a,c,d,e,g,k,l,p,n,m,v,x){c=null!=c?c:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;m=null!=m?m:this.maxImageBytes;var b=null!=c&&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 w=mxUtils.bind(this,function(){var h=this.editor.graph,q=h.gridSize;g=null!=g?g:mxUtils.bind(this,function(a,c,f,d,e,h,m,g,k){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,m)),null):this.importFile(a,c,f,d,e,h,m,g,k,b,x)});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,w=t,n=[],u=mxUtils.bind(this,function(a,
 b){n[a]=b;if(0==--w){this.spinner.stop();if(null!=p)p(n);else{var c=[];h.getModel().beginUpdate();try{for(var f=0;f<n.length;f++){var d=n[f]();null!=d&&(c=c.concat(d))}}finally{h.getModel().endUpdate()}}k(c)}}),A=0;A<t;A++)mxUtils.bind(this,function(b){var k=a[b],p=new FileReader;p.onload=mxUtils.bind(this,function(a){if(null==l||l(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var p=a.target.result,t=p.indexOf(","),w=decodeURIComponent(escape(atob(p.substring(t+1)))),
-n=mxUtils.parseXml(w),w=n.getElementsByTagName("svg");if(0<w.length){var w=w[0],y=x?null:w.getAttribute("content");null!=y&&"<"!=y.charAt(0)&&"%"!=y.charAt(0)&&(y=unescape(window.atob?atob(y):Base64.decode(y,!0)));null!=y&&"%"==y.charAt(0)&&(y=decodeURIComponent(y));null==y||"<mxfile "!==y.substring(0,8)&&"<mxGraphModel "!==y.substring(0,14)?u(b,mxUtils.bind(this,function(){try{if(p.substring(0,t+1),null!=n){var a=n.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")),
-l=parseFloat(f.getAttribute("height")),v=f.getAttribute("viewBox");if(null==v||0==v.length)f.setAttribute("viewBox","0 0 "+m+" "+l);else if(isNaN(m)||isNaN(l)){var w=v.split(" ");3<w.length&&(m=parseFloat(w[2]),l=parseFloat(w[3]))}p=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,l)),u=g(p,k.type,c+b*q,d+b*q,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(l*x)),k.name);if(isNaN(m)||isNaN(l)){var y=new Image;y.onload=mxUtils.bind(this,function(){m=
-Math.max(1,y.width);l=Math.max(1,y.height);u[0].geometry.width=m;u[0].geometry.height=l;f.setAttribute("viewBox","0 0 "+m+" "+l);p=this.createSvgDataUri(mxUtils.getXml(f));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));h.setCellStyles("image",p,[u[0]])});y.src=this.createSvgDataUri(mxUtils.getXml(f))}return u}}}catch(fa){}return null})):u(b,mxUtils.bind(this,function(){return g(y,"text/xml",c+b*q,d+b*q,0,0,k.name)}))}else u(b,mxUtils.bind(this,function(){return null}))}else{w=
-!1;if("image/png"==k.type){var A=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var z=new Image;z.src=a.target.result;u(b,mxUtils.bind(this,function(){return g(A,"text/xml",c+b*q,d+b*q,z.width,z.height,k.name)}));w=!0}}w||(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()}))):
+n=mxUtils.parseXml(w),w=n.getElementsByTagName("svg");if(0<w.length){var w=w[0],z=x?null:w.getAttribute("content");null!=z&&"<"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null==z||"<mxfile "!==z.substring(0,8)&&"<mxGraphModel "!==z.substring(0,14)?u(b,mxUtils.bind(this,function(){try{if(p.substring(0,t+1),null!=n){var a=n.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")),
+l=parseFloat(f.getAttribute("height")),v=f.getAttribute("viewBox");if(null==v||0==v.length)f.setAttribute("viewBox","0 0 "+m+" "+l);else if(isNaN(m)||isNaN(l)){var w=v.split(" ");3<w.length&&(m=parseFloat(w[2]),l=parseFloat(w[3]))}p=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,l)),u=g(p,k.type,c+b*q,d+b*q,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(l*x)),k.name);if(isNaN(m)||isNaN(l)){var z=new Image;z.onload=mxUtils.bind(this,function(){m=
+Math.max(1,z.width);l=Math.max(1,z.height);u[0].geometry.width=m;u[0].geometry.height=l;f.setAttribute("viewBox","0 0 "+m+" "+l);p=this.createSvgDataUri(mxUtils.getXml(f));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));h.setCellStyles("image",p,[u[0]])});z.src=this.createSvgDataUri(mxUtils.getXml(f))}return u}}}catch(fa){}return null})):u(b,mxUtils.bind(this,function(){return g(z,"text/xml",c+b*q,d+b*q,0,0,k.name)}))}else u(b,mxUtils.bind(this,function(){return null}))}else{w=
+!1;if("image/png"==k.type){var A=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var y=new Image;y.src=a.target.result;u(b,mxUtils.bind(this,function(){return g(A,"text/xml",c+b*q,d+b*q,y.width,y.height,k.name)}));w=!0}}w||(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,l,p){u(b,mxUtils.bind(this,function(){if(null!=h&&h.length<m){var t=f&&this.isResampleImage(a.target.result,v)?Math.min(1,Math.min(e/l,e/p)):1;return g(h,k.type,c+b*q,d+b*q,Math.round(l*t),Math.round(p*t),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,c+b*q,d+b*q,240,160,k.name,function(a){u(b,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?g(null,k.type,c+b*q,d+b*q,240,160,k.name,function(a){u(b,function(){return a})},k):"image"==k.type.substring(0,5)?p.readAsDataURL(k):p.readAsText(k)})(A)});h?this.confirmImageResize(function(a){f=a;w()},n):w()};EditorUi.prototype.confirmImageResize=function(a,c){c=null!=c?c:!1;var b=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
 f=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,d=function(f,d){if(f||c)mxSettings.setResizeImages(f?d:null),mxSettings.save();b();a(d)};null==f||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){d(a,!0)},function(a){d(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,
@@ -7784,7 +7788,7 @@ f=Math.max(1,a.height);if(e&&this.isResampleImage(c,k))try{var h=Math.max(b/g,f/
 (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(b(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=g&&g();else if(b(a,4),"IHDR"!=b(a,4))null!=g&&g();else{b(a,17);g=a.substring(0,k);do{var m=f(a);if("IDAT"==b(a,4)){g=a.substring(0,k-8);d=d+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):
 "")+e;e=4294967295;e=this.updateCRC(e,c,0,4);e=this.updateCRC(e,d,0,d.length);g+=h(d.length)+c+d+h(e^4294967295);g+=a.substring(k-8,a.length);break}g+=a.substring(k-8,k-4+m);b(a,m);b(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,f){a=d.substring(a+
 8,a+8+f);"zTXt"==c?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(f+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(q){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,c,d){var b=
-new Image;b.onload=function(){c(b)};null!=d&&(b.onerror=d);b.src=a};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,c=this.editor.graph;c.getLinkTitle=function(b){return a.getLinkTitle(b)};c.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(y){a.handleError(y)}return c};var d=this.clearDefaultStyle;
+new Image;b.onload=function(){c(b)};null!=d&&(b.onerror=d);b.src=a};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,c=this.editor.graph;c.getLinkTitle=function(b){return a.getLinkTitle(b)};c.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(z){a.handleError(z)}return c};var d=this.clearDefaultStyle;
 this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");
 return e.apply(this,arguments)};var g=c.addClickHandler;c.addClickHandler=function(a,b,f){var d=b;b=function(a,b){if(null==b){var f=mxEvent.getSource(a);"a"==f.nodeName.toLowerCase()&&(b=f.getAttribute("href"))}null!=b&&c.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&c.customLinkClicked(b)&&mxEvent.consume(a);null!=d&&d(a,b)};g.call(this,a,b,f)};k.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=
 function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var p=c.labelLinkClicked;c.labelLinkClicked=function(a,b,f){var d=b.getAttribute("href");if(null==d||
@@ -7801,8 +7805,8 @@ mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==f&&(!mxClie
 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){n=document.createElement("div");n.style.position="absolute";n.style.top="95px";n.style.left="250px";n.style.width="2000px";n.style.height="30px";n.style.background=
 "whiteSmoke";document.body.appendChild(n);var C=document.createElement("div");C.style.position="absolute";C.style.top="125px";C.style.left="220px";C.style.width="30px";C.style.height="1000px";C.style.background="whiteSmoke";document.body.appendChild(C);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,
 C,!0);this.hRuler=new mxRuler(this.editor.graph,n,!1)}if("1"==urlParams.styledev){n=document.getElementById("geFooter");null!=n&&(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)})),n.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)}}n=document.getElementById("geInfo");null!=n&&n.parentNode.removeChild(n);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==
+function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),n.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 F=this.isSelectionAllowed;
+this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}n=document.getElementById("geInfo");null!=n&&n.parentNode.removeChild(n);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)),f=c.view.translate,d=c.view.scale,e=b.x/d-f.x,h=b.y/d-f.y;mxEvent.isAltDown(a)&&(h=e=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,
 e,h,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var m=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,e,h,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var g=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=g;var k=null,f=b.getElementsByTagName("img");
 null!=f&&1==f.length?(g=f[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(g)||(k=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(g=b[0].getAttribute("href")));var l=!0,v=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(g,e,h,!0,k,null,l))});k&&g.length>this.resampleThreshold?this.confirmImageResize(function(a){l=a;v()},mxEvent.isControlDown(a)):v()}else null!=m&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)?this.loadImage(decodeURIComponent(m),mxUtils.bind(this,
@@ -7835,39 +7839,39 @@ this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessag
 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,c){null!=a?a.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=
 function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,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){if(f.source==(window.opener||window.parent)){var g=f.data,m=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&
-("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(M){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(G){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop();
+("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(M){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(H){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop();
 m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var h=m(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),h,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",
 result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{m.init()}catch(G){k.postMessage(JSON.stringify({event:"draft",error:G.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();m=1==g.enableRecent;h=1==g.enableSearch;m=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.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,
+try{m.init()}catch(H){k.postMessage(JSON.stringify({event:"draft",error:H.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();m=1==g.enableRecent;h=1==g.enableSearch;m=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.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,m?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,h?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(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));m.init();return}if("searchDocsList"==
 g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,m="";if(null!=this.pages)for(h=0;h<this.pages.length;h++){var p=l;this.currentPage!=this.pages[h]&&(p=this.createTemporaryGraph(l.getStylesheet()),p.model.setRoot(this.pages[h].root));m+=this.pages[h].getName()+" "+p.getIndexableText()+" "}else m=l.getIndexableText();this.editor.graph.setEnabled(!0);
 k.postMessage(JSON.stringify({event:"textContent",data:m,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var n=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,n):this.spinner.stop();return}if("export"==
 g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,w=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);k.postMessage(JSON.stringify(b),"*")}),t=
-mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);w(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),u=l.getGlobalVariable,y=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:u.apply(this,
-arguments)};document.body.appendChild(l.container);l.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){t(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){t(null)}),null,null,null,null,null,null,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?w("data:image/png;base64,"+a.getText()):
+mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);w(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),u=l.getGlobalVariable,z=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?z.getName():"pagenumber"==a?1:u.apply(this,
+arguments)};document.body.appendChild(l.container);l.model.setRoot(z.root)}this.exportToCanvas(mxUtils.bind(this,function(a){t(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){t(null)}),null,null,null,null,null,null,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?w("data:image/png;base64,"+a.getText()):
 t(null)}),mxUtils.bind(this,function(){t(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);n=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))m=this.getXmlFileData(),n.xml=mxUtils.getXml(m),n.data=this.getFileData(null,null,!0,null,null,null,m),n.format=g.format;else if("html"==g.format)q=this.editor.getGraphXml(),n.data=this.getHtml(q,this.editor.graph),n.xml=mxUtils.getXml(q),n.format=g.format;
 else{mxSvgCanvas2D.prototype.foAltText=null;m=this.editor.graph.background;m==mxConstants.NONE&&(m=null);n.xml=this.getFileData(!0);n.format="svg";if(g.embedImages||null==g.embedImages){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==g.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);
 k.postMessage(JSON.stringify(n),"*")})):this.convertImages(this.editor.graph.getSvg(m),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();n.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(n),"*")}));return}m="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(m));n.data=this.createSvgDataUri(m)}k.postMessage(JSON.stringify(n),"*")}return}if("load"==g.action)d=1==g.autosave,
 this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(h=document.createElement("span"),mxUtils.write(h,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(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),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var z=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(T){this.handleError(T)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var m=mxUtils.bind(this,function(){return"0"!=
+null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(h),this.embedFilenameSpan=h),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var y=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(T){this.handleError(T)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var m=mxUtils.bind(this,function(){return"0"!=
 urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=m();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var f=m();if(f!=e&&!c){var d=this.createLoadMessage("autosave");d.xml=f;f=JSON.stringify(d);(window.opener||window.parent).postMessage(f,"*")}e=f}),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")),"*")});null!=g&&"function"===typeof g.substring&&
-"data:application/vnd.visio;base64,"==g.substring(0,34)?(m="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){z(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),m)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&
-299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&z(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){z(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=m(g),z(g,f))}}));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=
+"data:application/vnd.visio;base64,"==g.substring(0,34)?(m="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){y(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),m)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&
+299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&y(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){y(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=m(g),y(g,f))}}));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 c=document.createElement("button");mxUtils.write(c,mxResources.get("save"));c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");c.className="geBigButton";c.style.fontSize="12px";c.style.padding="4px 6px 4px 6px";c.style.borderRadius="3px";mxEvent.addListener(c,"click",mxUtils.bind(this,
 function(){this.actions.get("save").funct()}));a.appendChild(c);"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.style.fontSize="12px",c.style.marginLeft="6px",c.style.padding="4px",c.style.cursor="pointer",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(c));c=document.createElement("a");mxUtils.write(c,mxResources.get("exit"));
 c.setAttribute("title",mxResources.get("exit"));c.style.fontSize="12px";c.style.marginLeft="6px";c.style.marginRight="20px";c.style.padding="4px";c.style.cursor="pointer";mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(c);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,c){try{var b=a.split("\n"),f=[];if(0<b.length){var d={},e=null,g=null,k=null,l=null,m="",v="auto",p="auto",n=null,B=null,H=40,E=40,F=100,L=0,y=this.editor.graph;y.getGraphBounds();for(var D=
-function(){null!=c?c(ea):(y.setSelectionCells(ea),y.scrollCellToVisible(y.getSelectionCell()))},G=y.getFreeInsertPoint(),M=G.x,J=G.y,G=J,T=null,P="auto",l=null,S=[],aa=null,Z=null,N=0;N<b.length&&"#"==b[N].charAt(0);){a=b[N];for(N++;N<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),K=mxUtils.trim(a.substring(Y+1));"label"==Q?T=y.sanitizeHtml(K):
-"style"==Q?e=K:"parentstyle"==Q?g=K:"identity"==Q&&0<K.length&&"-"!=K?k=K:"parent"==Q&&0<K.length&&"-"!=K?l=K:"namespace"==Q&&0<K.length&&"-"!=K?m=K:"width"==Q?v=K:"height"==Q?p=K:"left"==Q&&0<K.length?n=K:"top"==Q&&0<K.length?B=K:"ignore"==Q?Z=K.split(","):"connect"==Q?S.push(JSON.parse(K)):"link"==Q?aa=K:"padding"==Q?L=parseFloat(K):"edgespacing"==Q?H=parseFloat(K):"nodespacing"==Q?E=parseFloat(K):"levelspacing"==Q?F=parseFloat(K):"layout"==Q&&(P=K)}}}var U=this.editor.csvToArray(b[N]),Q=Y=null;
-if(null!=k||null!=l)for(var R=0;R<U.length;R++)k==U[R]&&(Y=R),l==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==d[S[O].to]&&(d[S[O].to]={});y.model.beginUpdate();try{for(R=N+1;R<b.length;R++){var V=this.editor.csvToArray(b[R]);if(V.length==U.length){var I=null,X=null!=Y?m+V[Y]:null;null!=X&&(I=y.model.getCell(X));null==I&&(I=new mxCell(T,new mxGeometry(M,G,0,0),e||"whiteSpace=wrap;html=1;"),I.vertex=!0,I.id=X);for(var W=0;W<V.length;W++)y.setAttributeForCell(I,U[W],
-V[W]);y.setAttributeForCell(I,"placeholders","1");I.style=y.replacePlaceholders(I,I.style);for(O=0;O<S.length;O++)d[S[O].to][I.getAttribute(S[O].to)]=I;null!=aa&&"link"!=aa&&(y.setLinkForCell(I,I.getAttribute(aa)),y.setAttributeForCell(I,aa,null));y.fireEvent(new mxEventObject("cellsInserted","cells",[I]));var da=this.editor.graph.getPreferredSizeForCell(I);I.vertex&&(null!=n&&null!=I.getAttribute(n)&&(I.geometry.x=M+parseFloat(I.getAttribute(n))),null!=B&&null!=I.getAttribute(B)&&(I.geometry.y=J+
-parseFloat(I.getAttribute(B))),"@"==v.charAt(0)&&null!=I.getAttribute(v.substring(1))?I.geometry.width=parseFloat(I.getAttribute(v.substring(1))):I.geometry.width="auto"==v?da.width+L:parseFloat(v),"@"==p.charAt(0)&&null!=I.getAttribute(p.substring(1))?I.geometry.height=parseFloat(I.getAttribute(p.substring(1))):I.geometry.height="auto"==p?da.height+L:parseFloat(p),G+=I.geometry.height+E);l=null!=Q?y.model.getCell(m+V[Q]):null;null!=l?(l.style=y.replacePlaceholders(l,g),y.addCell(I,l)):f.push(y.addCell(I))}}for(var ba=
-f.slice(),ea=f.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<f.length;R++){var I=f[R],la=I.getAttribute(ca.from);if(null!=la){y.setAttributeForCell(I,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=d[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(I.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(y.insertEdge(null,null,T||"",ca.invert?fa:I,ca.invert?I:fa,ca.style||y.createCurrentEdgeStyle())),mxUtils.remove(ca.invert?
-I:fa,ba))}}}if(null!=Z)for(R=0;R<f.length;R++)for(I=f[R],W=0;W<Z.length;W++)y.setAttributeForCell(I,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(y);ia.spacing=H;var na=function(){ia.execute(y.getDefaultParent());for(var a=0;a<f.length;a++){var b=y.getCellGeometry(f[a]);b.x=Math.round(y.snap(b.x));b.y=Math.round(y.snap(b.y));"auto"==v&&(b.width=Math.round(y.snap(b.width)));"auto"==p&&(b.height=Math.round(y.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(y);ja.resetEdges=!1;
-var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};this.executeLayout(function(){ja.execute(y.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*f.length-1&&1==ba.length){y.view.validate();var ka=new mxCompactTreeLayout(y,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(y.getDefaultParent(),0<ba.length?ba[0]:null)},
-!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){y.view.validate();var ga=new mxHierarchicalLayout(y,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=H;ga.interRankCellSpacing=F;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(y.getDefaultParent(),ea);y.moveCells(ea,M,J)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>f.length){y.view.validate();var ha=new mxFastOrganicLayout(y);
-ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};ia=new mxParallelEdgeLayout(y);ia.spacing=H;this.executeLayout(function(){ha.execute(y.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{y.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c=
+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,c){try{var b=a.split("\n"),f=[];if(0<b.length){var d={},e=null,g=null,k=null,l=null,m="",v="auto",p="auto",n=null,B=null,F=40,E=40,G=100,L=0,z=this.editor.graph;z.getGraphBounds();for(var D=
+function(){null!=c?c(ea):(z.setSelectionCells(ea),z.scrollCellToVisible(z.getSelectionCell()))},H=z.getFreeInsertPoint(),M=H.x,J=H.y,H=J,T=null,P="auto",l=null,S=[],aa=null,Z=null,N=0;N<b.length&&"#"==b[N].charAt(0);){a=b[N];for(N++;N<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),K=mxUtils.trim(a.substring(Y+1));"label"==Q?T=z.sanitizeHtml(K):
+"style"==Q?e=K:"parentstyle"==Q?g=K:"identity"==Q&&0<K.length&&"-"!=K?k=K:"parent"==Q&&0<K.length&&"-"!=K?l=K:"namespace"==Q&&0<K.length&&"-"!=K?m=K:"width"==Q?v=K:"height"==Q?p=K:"left"==Q&&0<K.length?n=K:"top"==Q&&0<K.length?B=K:"ignore"==Q?Z=K.split(","):"connect"==Q?S.push(JSON.parse(K)):"link"==Q?aa=K:"padding"==Q?L=parseFloat(K):"edgespacing"==Q?F=parseFloat(K):"nodespacing"==Q?E=parseFloat(K):"levelspacing"==Q?G=parseFloat(K):"layout"==Q&&(P=K)}}}var U=this.editor.csvToArray(b[N]),Q=Y=null;
+if(null!=k||null!=l)for(var R=0;R<U.length;R++)k==U[R]&&(Y=R),l==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==d[S[O].to]&&(d[S[O].to]={});z.model.beginUpdate();try{for(R=N+1;R<b.length;R++){var V=this.editor.csvToArray(b[R]);if(V.length==U.length){var I=null,X=null!=Y?m+V[Y]:null;null!=X&&(I=z.model.getCell(X));null==I&&(I=new mxCell(T,new mxGeometry(M,H,0,0),e||"whiteSpace=wrap;html=1;"),I.vertex=!0,I.id=X);for(var W=0;W<V.length;W++)z.setAttributeForCell(I,U[W],
+V[W]);z.setAttributeForCell(I,"placeholders","1");I.style=z.replacePlaceholders(I,I.style);for(O=0;O<S.length;O++)d[S[O].to][I.getAttribute(S[O].to)]=I;null!=aa&&"link"!=aa&&(z.setLinkForCell(I,I.getAttribute(aa)),z.setAttributeForCell(I,aa,null));z.fireEvent(new mxEventObject("cellsInserted","cells",[I]));var da=this.editor.graph.getPreferredSizeForCell(I);I.vertex&&(null!=n&&null!=I.getAttribute(n)&&(I.geometry.x=M+parseFloat(I.getAttribute(n))),null!=B&&null!=I.getAttribute(B)&&(I.geometry.y=J+
+parseFloat(I.getAttribute(B))),"@"==v.charAt(0)&&null!=I.getAttribute(v.substring(1))?I.geometry.width=parseFloat(I.getAttribute(v.substring(1))):I.geometry.width="auto"==v?da.width+L:parseFloat(v),"@"==p.charAt(0)&&null!=I.getAttribute(p.substring(1))?I.geometry.height=parseFloat(I.getAttribute(p.substring(1))):I.geometry.height="auto"==p?da.height+L:parseFloat(p),H+=I.geometry.height+E);l=null!=Q?z.model.getCell(m+V[Q]):null;null!=l?(l.style=z.replacePlaceholders(l,g),z.addCell(I,l)):f.push(z.addCell(I))}}for(var ba=
+f.slice(),ea=f.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<f.length;R++){var I=f[R],la=I.getAttribute(ca.from);if(null!=la){z.setAttributeForCell(I,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=d[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(I.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(z.insertEdge(null,null,T||"",ca.invert?fa:I,ca.invert?I:fa,ca.style||z.createCurrentEdgeStyle())),mxUtils.remove(ca.invert?
+I:fa,ba))}}}if(null!=Z)for(R=0;R<f.length;R++)for(I=f[R],W=0;W<Z.length;W++)z.setAttributeForCell(I,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(z);ia.spacing=F;var na=function(){ia.execute(z.getDefaultParent());for(var a=0;a<f.length;a++){var b=z.getCellGeometry(f[a]);b.x=Math.round(z.snap(b.x));b.y=Math.round(z.snap(b.y));"auto"==v&&(b.width=Math.round(z.snap(b.width)));"auto"==p&&(b.height=Math.round(z.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(z);ja.resetEdges=!1;
+var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};this.executeLayout(function(){ja.execute(z.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*f.length-1&&1==ba.length){z.view.validate();var ka=new mxCompactTreeLayout(z,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(z.getDefaultParent(),0<ba.length?ba[0]:null)},
+!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){z.view.validate();var ga=new mxHierarchicalLayout(z,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=F;ga.interRankCellSpacing=G;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(z.getDefaultParent(),ea);z.moveCells(ea,M,J)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>f.length){z.view.validate();var ha=new mxFastOrganicLayout(z);
+ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};ia=new mxParallelEdgeLayout(z);ia.spacing=F;this.executeLayout(function(){ha.execute(z.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{z.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};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,c,d){a=new LinkDialog(this,a,c,d,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.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*
@@ -7897,7 +7901,8 @@ mxSettings.defaultFormatWidth),null!=mxSettings.settings.lastAlert&&delete mxSet
 mxGraphView.prototype.gridColor),null==mxSettings.settings.autosave&&(mxSettings.settings.autosave=!0),null!=mxSettings.settings.scratchpadSeen&&delete mxSettings.settings.scratchpadSeen))},clear:function(){isLocalStorage&&localStorage.removeItem(mxSettings.key)}};("undefined"==typeof mxLoadSettings||mxLoadSettings)&&mxSettings.load();App=function(a,e,d){EditorUi.call(this,a,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);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 c=null;try{c=window.open(a)}catch(p){}null==c||void 0===c?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.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="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.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.GOOGLE_REALTIME="0"!=urlParams["google-realtime"];
+App.GOOGLE_APIS="client,drive-share"+(App.GOOGLE_REALTIME?",drive-realtime":"");
 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",f5:"/plugins/rackF5.js",tickets:"/plugins/tickets.js",flow:"/plugins/flow.js",webcola:"/plugins/webcola/webcola.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 c=mxUtils.trim(e[d]);if("MODE="==c.substring(0,5)){a=c.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};
@@ -7910,12 +7915,12 @@ null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db
 null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==
 urlParams.tr)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL,function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=a&&a(b);"0"!=urlParams.chrome&&"1"==urlParams.test&&(mxLog.show(),mxLog.debug("Started in "+((new Date).getTime()-t0.getTime())+"ms"),mxLog.debug("Export:",EXPORT_URL),mxLog.debug("Development mode:","1"==urlParams.dev?"active":"inactive"),mxLog.debug("Test mode:",
 "1"==urlParams.test?"active":"inactive"))},function(a){document.getElementById("geStatus").innerHTML='Error loading page. <a href="javascript:void(0);">Please try refreshing.</a>';document.getElementById("geStatus").getElementsByTagName("a")[0].onclick=function(){mxLanguage="en";d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}})}function c(){mxResources.loadDefaultBundle=!1;d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||
-mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var g=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=g&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){g=a;var e=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";e.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!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(x){}});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 k=document.createElement("iframe");
-k.setAttribute("width","0");k.setAttribute("height","0");k.setAttribute("src","offline.html");document.body.appendChild(k)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var k=null!=mxSettings.settings?mxSettings.getPlugins():null,l={},p=urlParams.p;App.initPluginCallback();if(null!=p){var n="";"1"==urlParams.drawdev&&(n=document.location.protocol+"//drawhost.jgraph.com/");for(var b=p.split(";"),p=0;p<b.length;p++){var f=App.pluginRegistry[b[p]];null!=f&&null==l[f]?(l[f]=!0,mxscript(n+f)):null!=
-window.console&&console.log("Unknown plugin:",b[p])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=k&&0<k.length&&"0"!=urlParams.plugins){n=window.location.protocol+"//"+window.location.host;b=!0;for(p=0;p<k.length&&b;p++)"/"!=k[p].charAt(0)&&k[p].substring(0,n.length)!=n&&(b=!1);if(b||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",
-[k.join("\n")]).replace(/\\n/g,"\n")))for(p=0;p<k.length;p++)try{null==l[k[p]]&&(l[f]=!0,mxscript(k[p]))}catch(q){}}}"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();if("1"==urlParams.configure){var h=window.opener||window.parent,t=function(a){if(a.source==h)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",t),Editor.configure(b.config,!0),mxSettings.load(),c())}catch(w){null!=window.console&&console.log("Error in configuration: "+w)}};mxEvent.addListener(window,"message",t);h.postMessage(JSON.stringify({event:"load"}),"*")}else c()};mxUtils.extend(App,EditorUi);
+mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var g=Editor.guid(),k=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=k&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){k=a;var e=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",m=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=
+m+"/log?severity="+e+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")+"&sid="+g}}catch(C){}});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 l=document.createElement("iframe");
+l.setAttribute("width","0");l.setAttribute("height","0");l.setAttribute("src","offline.html");document.body.appendChild(l)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var l=null!=mxSettings.settings?mxSettings.getPlugins():null,p={},n=urlParams.p;App.initPluginCallback();if(null!=n){var b="";"1"==urlParams.drawdev&&(b=document.location.protocol+"//drawhost.jgraph.com/");for(var f=n.split(";"),n=0;n<f.length;n++){var h=App.pluginRegistry[f[n]];null!=h&&null==p[h]?(p[h]=!0,mxscript(b+h)):null!=
+window.console&&console.log("Unknown plugin:",f[n])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=l&&0<l.length&&"0"!=urlParams.plugins){b=window.location.protocol+"//"+window.location.host;f=!0;for(n=0;n<l.length&&f;n++)"/"!=l[n].charAt(0)&&l[n].substring(0,b.length)!=b&&(f=!1);if(f||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",
+[l.join("\n")]).replace(/\\n/g,"\n")))for(n=0;n<l.length;n++)try{null==p[l[n]]&&(p[h]=!0,mxscript(l[n]))}catch(u){}}}"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();if("1"==urlParams.configure){var t=window.opener||window.parent,q=function(a){if(a.source==t)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",q),Editor.configure(b.config,!0),mxSettings.load(),c())}catch(y){null!=window.console&&console.log("Error in configuration: "+y)}};mxEvent.addListener(window,"message",q);t.postMessage(JSON.stringify({event:"load"}),"*")}else c()};mxUtils.extend(App,EditorUi);
 App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=30";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg==";
 App.prototype.chevronUpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUY1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NjA1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1RDUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1RTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg+qUokAAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAAL0lEQVR42mJgRgMMRAswMKAKMDDARBjg8lARBoR6KImkH0wTbygT6YaS4DmAAAMAYPkClOEDDD0AAAAASUVORK5CYII=":
 IMAGE_PATH+"/chevron-up.png";
@@ -7929,11 +7934,11 @@ App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);this
 if("1"!=urlParams.embed||"1"==urlParams.od){var a=mxUtils.bind(this,function(){"undefined"!==typeof OneDrive?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=a)});a()}if("1"!=urlParams.embed||"1"==urlParams.tr){var e=mxUtils.bind(this,function(){"undefined"!==
 typeof window.Trello?(this.trello=new TrelloClient(this),this.trello.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.trello))):null==window.DrawTrelloClientCallback&&(window.DrawTrelloClientCallback=e)});e()}if("1"!=urlParams.embed||"1"==urlParams.gapi){var d=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this);
 "420247213240"==this.drive.appId&&this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile&&(a=document.getElementById("geFooterItem2"),null!=a&&(a.innerHTML='<a href="https://support.draw.io/display/DO/2014/11/27/Switching+application+in+Google+Drive" target="_blank" title="IMPORTANT NOTICE" >IMPORTANT NOTICE</a>'))}));this.drive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries();
-this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(c){null!=gapi.drive&&null!=gapi.drive.realtime&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null==
-window.DrawGapiClientCallback&&(window.DrawGapiClientCallback=d)});d()}if("1"!=urlParams.embed||"1"==urlParams.db){var c=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&&
-(window.DrawDropboxClientCallback=c)});c()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();
-null!=this.menubar&&(this.buttonContainer=document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",
-IMAGE_PATH+"/logo-flat-small.png"),this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))};
+this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(c){null!=gapi.client&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null==window.DrawGapiClientCallback&&
+(window.DrawGapiClientCallback=d)});d()}if("1"!=urlParams.embed||"1"==urlParams.db){var c=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&&(window.DrawDropboxClientCallback=
+c)});c()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();null!=this.menubar&&(this.buttonContainer=
+document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",IMAGE_PATH+"/logo-flat-small.png"),
+this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))};
 App.prototype.isDriveDomain=function(){return"0"!=urlParams.drive&&("test.draw.io"==window.location.hostname||"cdn.draw.io"==window.location.hostname||"www.draw.io"==window.location.hostname||"drive.draw.io"==window.location.hostname||"jgraph.github.io"==window.location.hostname)};App.prototype.isLegacyDriveDomain=function(){return 0==urlParams.drive||"legacy.draw.io"==window.location.hostname};
 App.prototype.checkLicense=function(){var a=this.drive.getUser(),e=("1"==urlParams.dev?urlParams.lic:null)||(null!=a?a.email:null);if(!this.isOffline()&&!this.editor.chromeless&&null!=e){var d=e.lastIndexOf("@"),c=e;0<=d&&(c=e.substring(d+1),e=this.crc32(e.substring(0,d))+"@"+c);mxUtils.post("/license","domain="+encodeURIComponent(c)+"&email="+encodeURIComponent(e)+"&ds="+encodeURIComponent(a.displayName)+"&lc="+encodeURIComponent(a.locale)+"&ts="+(new Date).getTime(),mxUtils.bind(this,function(a){try{if(200<=
 a.getStatus()&&299>=a.getStatus()){var d=a.getText();if(0<d.length){var e=JSON.parse(d);null!=e&&this.handleLicense(e,c)}}}catch(p){}}))}};
@@ -7948,17 +7953,19 @@ App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxVie
 App.prototype.getThumbnail=function(a,e){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()),g=c.getGlobalVariable,k=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:g.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(k.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);e(a)}),a,this.thumbImageCache,"#ffffff",function(){e()},null,null,null,null,null,null,c),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var l=document.createElement("canvas"),p=c.getGraphBounds(),n=a/p.width,n=Math.min(1,Math.min(3*a/(4*p.height),n)),b=Math.floor(p.x),f=Math.floor(p.y);l.setAttribute("width",Math.ceil(n*(p.width+4)));l.setAttribute("height",Math.ceil(n*(p.height+4)));var h=l.getContext("2d");
 h.scale(n,n);h.translate(-b,-f);var t=c.background;if(null==t||""==t||t==mxConstants.NONE)t="#ffffff";h.save();h.fillStyle=t;h.fillRect(b,f,Math.ceil(p.width+4),Math.ceil(p.height+4));h.restore();var q=new mxJsCanvas(l),u=new mxAsyncCanvas(this.thumbImageCache);q.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),u);u.finish(mxUtils.bind(this,function(){w.drawState(c.getView().getState(c.model.root),q);c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);e(l)}));d=!0}}catch(z){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}return d};
+b){};w.drawState(c.getView().getState(c.model.root),u);u.finish(mxUtils.bind(this,function(){w.drawState(c.getView().getState(c.model.root),q);c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);e(l)}));d=!0}}catch(y){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(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 c=new Date;c.setYear(c.getFullYear()+1);document.cookie="MODE="+e+"; expires="+c.toUTCString()}null!=this.appIcon&&(c=this.getCurrentFile(),e=null!=c?c.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"))}})();
-App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var e=this.getCurrentFile(),d=null!=e?e.getMode():null;d==App.MODE_GOOGLE?null!=e.desc&&0<e.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+e.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):d==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):d==App.MODE_TRELLO?this.openLink("https://trello.com/"):
-d==App.MODE_GITHUB&&(null!=e&&e.constructor==GitHubFile?this.openLink(e.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}};App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a};
+App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var e=this.getCurrentFile(),d=null!=e?e.getMode():null;d==App.MODE_GOOGLE?null!=e.desc&&null!=e.desc.parents&&0<e.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+e.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):d==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):d==App.MODE_TRELLO?
+this.openLink("https://trello.com/"):d==App.MODE_GITHUB&&(null!=e&&e.constructor==GitHubFile?this.openLink(e.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}};
+App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a};
 App.prototype.open=function(){try{if(null!=window.opener){var a=urlParams.create;null!=a&&(a=decodeURIComponent(a));if(null!=a&&0<a.length&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)){var e=mxUtils.parseXml(window.opener[a]);this.editor.setGraphXml(e.documentElement)}else null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,c,e){this.spinner.stop();null==c&&(c=urlParams.title,e=!0,c=null!=c?decodeURIComponent(c):this.defaultFilename);0<(this.useCanvasForExport?
 -1:".png"==c.substring(c.length-4))&&(c=c.substring(0,c.length-4)+".xml");this.fileLoaded(mxClient.IS_IOS?new StorageFile(this,a,c):new LocalFile(this,a,c,e))}))}}catch(d){}};
-App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(e){null==gapi.drive||null==gapi.drive.realtime?(this.drive=this.mode=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.drive=this.mode=null);a()}))}))}))};
+App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(e){null==gapi.client?(this.mode=this.drive=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.mode=this.drive=null);a()}))}))}))};
 App.prototype.load=function(){if("1"!=urlParams.embed){if(this.spinner.spin(document.body,mxResources.get("starting"))){try{this.stateArg=null!=urlParams.state&&null!=this.drive?JSON.parse(decodeURIComponent(urlParams.state)):null}catch(a){}this.editor.graph.setEnabled(null!=this.getCurrentFile());null!=window.location.hash&&0!=window.location.hash.length||null==this.drive||null==this.stateArg||null==this.stateArg.userId||this.drive.setUserId(this.stateArg.userId);null!=urlParams.fileId?(window.location.hash=
 "G"+urlParams.fileId,window.location.search=this.getSearch(["fileId"])):null==this.drive?(this.mode==App.MODE_GOOGLE&&(this.mode=null),this.start()):this.loadGapi(mxUtils.bind(this,function(){this.start()}))}}else this.restoreLibraries(),"1"==urlParams.gapi&&this.loadGapi(function(){})};
+App.prototype.showRefreshDialog=function(a,e){this.showingRefreshDialog||(this.showingRefreshDialog=!0,this.showError(a||mxResources.get("error"),e||mxResources.get("redirectToNewApp"),mxResources.get("refresh"),mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("connecting"));this.editor.graph.setEnabled(!1);window.location.reload()})))};
 App.prototype.showAlert=function(a){if(null!=a&&0<a.length){var e=document.createElement("div");e.className="geAlert";e.style.zIndex=2E9;e.style.left="50%";e.style.top="-100%";mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,0%)");mxUtils.setPrefixedStyle(e.style,"transition","all 1s ease");e.innerHTML=a;a=document.createElement("a");a.className="geAlertLink";a.style.textAlign="right";a.style.marginTop="20px";a.style.display="block";a.setAttribute("href","javascript:void(0);");a.setAttribute("title",
 mxResources.get("close"));a.innerHTML=mxResources.get("close");e.appendChild(a);mxEvent.addListener(a,"click",function(a){null!=e.parentNode&&(e.parentNode.removeChild(e),mxEvent.consume(a))});document.body.appendChild(e);window.setTimeout(function(){e.style.top="30px"},10);window.setTimeout(function(){mxUtils.setPrefixedStyle(e.style,"transition","all 2s ease");e.style.opacity="0";window.setTimeout(function(){null!=e.parentNode&&e.parentNode.removeChild(e)},2E3)},15E3)}};
 App.prototype.start=function(){this.bg.parentNode.removeChild(this.bg);this.restoreLibraries();this.spinner.stop();try{if("1"!=urlParams.client&&"1"!=urlParams.embed&&mxEvent.addListener(window,"hashchange",mxUtils.bind(this,function(a){try{var c=this.getDiagramId(),d=this.getCurrentFile();null!=d&&d.getHash()==c||this.loadFile(c,!0)}catch(p){null!=document.body&&this.handleError(p,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=
@@ -8016,14 +8023,14 @@ 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,c){var e=0,k=[],l=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!=c&&c()}});if(null!=d)for(var p=0;p<d.length;p++){var n=encodeURIComponent(decodeURIComponent(d[p]));mxUtils.bind(this,
 function(b,c){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){e++;var d=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];k[c]=a;e--;l()}),f=mxUtils.bind(this,function(){a(b);e--;l()});this.pendingLibraries[b]=!0;var g=b.substring(0,1);if("L"==g)(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?d(new StorageLibrary(this,b,a)):f()}))}catch(A){f()}}),0);else if("U"==g){var p=decodeURIComponent(b.substring(1));if(!this.isOffline()){g=p;this.isCorsEnabledForUrl(g)||(g="t="+(new Date).getTime(),g=PROXY_URL+"?url="+encodeURIComponent(p)+"&"+g);try{mxUtils.get(g,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{d(new UrlLibrary(this,a.getText(),p))}catch(A){f()}else f()}),function(){f()})}catch(z){f()}}}else{var n=null;"G"==g?null!=
+b&&(b=this.emptyLibraryXml);null!=b?d(new StorageLibrary(this,b,a)):f()}))}catch(A){f()}}),0);else if("U"==g){var p=decodeURIComponent(b.substring(1));if(!this.isOffline()){g=p;this.isCorsEnabledForUrl(g)||(g="t="+(new Date).getTime(),g=PROXY_URL+"?url="+encodeURIComponent(p)+"&"+g);try{mxUtils.get(g,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{d(new UrlLibrary(this,a.getText(),p))}catch(A){f()}else f()}),function(){f()})}catch(y){f()}}}else{var n=null;"G"==g?null!=
 this.drive&&null!=this.drive.user&&(n=this.drive):"H"==g?null!=this.gitHub&&null!=this.gitHub.getUser()&&(n=this.gitHub):"T"==g?null!=this.trello&&this.trello.isAuthorized()&&(n=this.trello):"D"==g?null!=this.dropbox&&null!=this.dropbox.getUser()&&(n=this.dropbox):"W"==g&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(n=this.oneDrive);null!=n?n.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{d(a)}catch(A){f()}}),function(a){f()}):(delete this.pendingLibraries[b],
 f())}}})(n,p)}l()});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),
 this.shareButton=null)}};
 App.prototype.save=function(a,e){var d=this.getCurrentFile(),c=mxResources.get("saving");null!=d&&d.constructor==DriveFile&&(c=mxResources.get("createRevision"));if(null!=d&&this.spinner.spin(document.body,c)){this.editor.setStatus("");this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.bind(this,function(a){this.spinner.stop();this.getCurrentFile()==d&&(d.isModified()?d.isAutosave()||d.addUnsavedStatus():this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))));null!=
-e&&e()}),g=mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==d.getTitle()?d.save(!0,c,g):d.saveAs(a,c,g)}};
+e&&e()}),g=mxUtils.bind(this,function(a){this.getCurrentFile()==d&&d.isModified()&&d.addUnsavedStatus();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==d.getTitle()?d.save(!0,c,g):d.saveAs(a,c,g)}};
 App.prototype.pickFolder=function(a,e,d){d=null!=d?d:!0;var c=this.spinner.pause();d&&a==App.MODE_GOOGLE&&null!=this.drive?this.drive.pickFolder(mxUtils.bind(this,function(a){c();if(a.action==google.picker.Action.PICKED){var d=null;null!=a.docs&&0<a.docs.length&&"folder"==a.docs[0].type&&(d=a.docs[0].id);e(d)}})):d&&a==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.pickFolder(mxUtils.bind(this,function(a){c();null!=a&&null!=a.value&&0<a.value.length&&(a=OneDriveFile.prototype.getIdOf(a.value[0]),
 e(a))})):d&&a==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.pickFolder(mxUtils.bind(this,function(a){c();e(a)})):d&&a==App.MODE_TRELLO&&null!=this.trello?this.trello.pickFolder(mxUtils.bind(this,function(a){c();e(a)})):EditorUi.prototype.pickFolder.apply(this,arguments)};
 App.prototype.exportFile=function(a,e,d,c,g,k){g==App.MODE_DROPBOX?null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.dropbox.insertFile(e,c?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)})):g==App.MODE_GOOGLE?null!=this.drive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.drive.insertFile(e,a,k,mxUtils.bind(this,function(a){this.spinner.stop()}),
@@ -8072,100 +8079,100 @@ this.userElement.style.display="none"}else null!=this.userElement&&(this.userEle
 var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign","bottom");d.setAttribute("src",Editor.helpImage);c.appendChild(d);mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){null!=this.editorUi.menubar&&this.editorUi.menubar.hideMenu();this.editorUi.openLink(a);mxEvent.consume(c)}));return c};Menus.prototype.addLinkToItem=function(a,d){null!=a&&a.firstChild.nextSibling.appendChild(this.createHelpLink(d))};var e=Menus.prototype.init;Menus.prototype.init=function(){e.apply(this,
 arguments);var a=this.editorUi,d=a.editor.graph,k=mxUtils.bind(d,d.isEnabled),l=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),p=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode),n=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname||
 "drive.draw.io"==window.location.hostname||"legacy.draw.io"==window.location.hostname)&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode),b=("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==urlParams.tr)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode);mxClient.IS_SVG||a.isOffline()||((new Image).src=IMAGE_PATH+
-"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l,p){b=parseInt(b);!isNaN(b)&&0<
-b&&a.exportSvg(b/100,c,d,e,f,g,h,!k,l,p)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=null==a.pages||1>=a.pages.length,e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatXml"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(e);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()),
-g=a.addCheckbox(b,mxResources.get(c?"compressed":"allPages"),!0);g.style.marginBottom="16px";mxEvent.addListener(f,"change",function(){f.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("xml",c?!g.checked:null,null,!f.checked,c?null:!g.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}));a.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){a.showPublishLinkDialog(mxResources.get("url"),
-!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,e,f,m,g,h,k,l){a.createHtml(b,c,d,e,f,m,g,h,k,l,mxUtils.bind(this,function(b,c){var d=
-a.getBaseFilename(g),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+b+"\n"+c+"\n</body>\n</html>";a.saveData(d+".html","html",e,"text/html")}))})})}));a.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(a.isOffline()||a.printPdfExport)a.showDialog((new PrintDialog(a,mxResources.get("formatPdf"))).container,
-360,null!=a.pages&&1<a.pages.length?420:360,!0,!0);else{var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=document.createElement("h3");mxUtils.write(c,mxResources.get("formatPdf"));c.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(c);var e=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()),f=a.addCheckbox(b,mxResources.get("crop"),!d.pageVisible||!a.pdfPageExport,!a.pdfPageExport);f.style.marginBottom="16px";a.pdfPageExport||
-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(){function b(){a.fileLoaded(null)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),
+"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,f,e,g,h,k,l,p){b=parseInt(b);!isNaN(b)&&0<
+b&&a.exportSvg(b/100,c,d,f,e,g,h,!k,l,p)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=null==a.pages||1>=a.pages.length,f=document.createElement("h3");mxUtils.write(f,mxResources.get("formatXml"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(f);var e=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()),
+g=a.addCheckbox(b,mxResources.get(c?"compressed":"allPages"),!0);g.style.marginBottom="16px";mxEvent.addListener(e,"change",function(){e.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("xml",c?!g.checked:null,null,!e.checked,c?null:!g.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}));a.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){a.showPublishLinkDialog(mxResources.get("url"),
+!0,null,null,function(b,c,d,f,e,g){b=new EmbedDialog(a,a.createLink(b,c,d,f,e,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,f,e,m,g,h,k,l){a.createHtml(b,c,d,f,e,m,g,h,k,l,mxUtils.bind(this,function(b,c){var d=
+a.getBaseFilename(g),f='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+b+"\n"+c+"\n</body>\n</html>";a.saveData(d+".html","html",f,"text/html")}))})})}));a.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(a.isOffline()||a.printPdfExport)a.showDialog((new PrintDialog(a,mxResources.get("formatPdf"))).container,
+360,null!=a.pages&&1<a.pages.length?420:360,!0,!0);else{var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=document.createElement("h3");mxUtils.write(c,mxResources.get("formatPdf"));c.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(c);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()),e=a.addCheckbox(b,mxResources.get("crop"),!d.pageVisible||!a.pdfPageExport,!a.pdfPageExport);e.style.marginBottom="16px";a.pdfPageExport||
+mxEvent.addListener(f,"change",function(){f.checked?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("pdf",null,null,!f.checked,null,!e.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(){function b(){a.fileLoaded(null)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),
 null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});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-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),
-null,!0))});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}if(isLocalStorage||mxClient.IS_CHROMEAPP)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()&&a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=d.getSelectionCells(),c=[],e=0;e<b.length;e++)d.getModel().isVertex(b[e])&&c.push(b[e]);0<c.length&&(b=new EditGeometryDialog(a,c),a.showDialog(b.container,200,250,!0,!0),b.init())},
-null,null,Editor.ctrlKey+"+Shift+M");var t="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" ");a.actions.addAction("copyStyle",function(){var b=d.view.getState(d.getSelectionCell());
-if(d.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=d.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],c=0;c<b.length;c++){var e=b[c],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);null==a.copiedStyle[g]&&"none"==e&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=a.copiedStyle){d.getModel().beginUpdate();try{for(var b=d.getSelectionCells(),c=
-0;c<b.length;c++)for(var e=d.view.getState(b[c]),f=0;f<t.length;f++){var g=t[f],h=a.copiedStyle[g];e.style[g]!=h&&d.setCellStyles(g,h,[b[c]])}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container,320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+
-"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,e,f,h,!k,l)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg",
-new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,e,!1,h,!k,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",
-null,null,b)}),!0)}));f=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){d.setShadowVisible(!d.shadowVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.shadowVisible});var q=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){q||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){q=!1}),q=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});
-a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});
-a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});f=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",
-function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));f=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140),
-this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx",
-new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=b.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}),
-c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(f,Editor.checkmarkImage));return f});d("");b.addSeparator(c);for(var e in mxLanguageMap)d(e)}))),"atlas"!=uiTheme){var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=u.apply(this,arguments);if(null!=b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>',
-c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,c){if(!mxClient.IS_CHROMEAPP&&a.isOffline())this.addMenuItems(b,["about"],c);else{var e=b.addItem("Search:",null,null,c,null,null,!1);e.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input");
-f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(f.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+encodeURIComponent(b)),f.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&&
-(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b,["-","quickStart","userManual","keyboardShortcuts","-"],c);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],c);this.addMenuItems(b,["support","-"],c);a.isOffline()||EditorUi.isElectronApp||navigator.standalone||
-"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],c);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],c);this.addMenuItems(b,["-","about"],c)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),
-mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);
-this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],c));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=d.getGraphBounds(),b=d.view.translate,e=d.view.scale;d.insertVertex(c,null,"",a.x/e-b.x,a.y/e-b.y,a.width/e,a.height/e,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),
-this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){d.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+d.compress(mxUtils.getXml(d.encodeCells(d.getSelectionCells())))+"', width, height, 'Title');"))})),this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],c),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=d.getGraphBounds(),
-c=d.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));e.scale(1/c);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var m=e.restore;e.restore=function(){g--;m.apply(this,arguments)};var k=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);k.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(d.getView().getState(d.model.root),e);mxLog.show();
-mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],c),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),
-console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+
-b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel",
-"testDownloadRtModel"],c),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-","testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,
-!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(d.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),
-function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,m,k,l){a.createHtml(b,c,d,e,f,g,h,m,k,l,mxUtils.bind(this,function(b,c){var d=new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');
-d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f,
-a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,
-EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},
-mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));
-a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=d.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((b.y+b.height-d.view.translate.y)/d.view.scale)+2,function(b,c,d,e,f,g,h,m){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(k){a.spinner.stop();k=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+m+';" src="'+a.createLink(b,c,d,e,f,g,k)+'"></iframe>');
-a.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});
-a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)f=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,
-360,170,!0,!1)});f=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});f.setToggleAction(!0);f.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){d.isEditing()&&d.stopEditing();var c="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());
-if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=c;b&&(e.exit=!0);c=JSON.stringify(e)}(window.opener||window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",
-modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b,
-["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",
-mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(c,e){function f(b){b.pickFile(function(c){a.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this,
-function(b,c,e){var f=d.view,g=d.getGraphBounds(),h=d.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*d.gridSize)),k=d.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*d.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=!0,m=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,m,l){f=g?Math.min(1,Math.min(a.maxImageSize/m,a.maxImageSize/l)):1;a.importFile(b,c,h,k,Math.round(m*f),Math.round(l*f),e,function(b){a.spinner.stop();
-d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=a;m()}):m()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,c,h,k,0,0,e,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&
-(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){f(a.drive)},e):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){f(a.gitHub)},e);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){f(a.dropbox)},e):p&&c.addItem(mxResources.get("dropbox")+
-" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){f(a.oneDrive)},e):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){f(a.trello)},e):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1);c.addSeparator(e);isLocalStorage&&
-"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.importLocalFile(!1)},e);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.importLocalFile(!0)},e);a.isOffline()||(c.addSeparator(e),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";
-a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},e))})).isEnabled=k;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),e=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);
-"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(e,Editor.checkmarkImage);b.addSeparator(c);e=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(e,Editor.checkmarkImage);
-e=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(e,Editor.checkmarkImage)})));f=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();
-if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==
-StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));f.isEnabled=function(){return this.enabled&&k.apply(this,arguments)};f.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():a.defaultFilename,
-d="",e=c.lastIndexOf(".");0<=e&&(d=c.substring(e),c=c.substring(0,e));c=mxResources.get("copyOf",[c])+d;b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=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("useOffline",new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")}));
-a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.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=function(b,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var b=new ParseDialog(a,d,e);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.scrollCellToVisible(a);d.setSelectionCell(a);d.container.focus();d.editAfterInsert&&d.startEditing(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;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):w(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),
-c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);A(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));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(c,d){null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+
-"...)",null,function(){},d,null,!1);null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+
-" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},
-d);a.isOffline()||(c.addSeparator(d),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))}));Editor.enableCustomLibraries&&
-(this.put("newLibrary",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},d);null!=
-a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?
-c.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null,
-null,null,null,App.MODE_DEVICE)},d)})),this.put("openLibraryFrom",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},d);null!=a.dropbox?
-c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)},
-d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},d);a.isOffline()||(c.addSeparator(d),c.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()},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 editGeometry - 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||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog;a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)},
-null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"},
-{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},
-{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom",
-b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],
-c),null==d.realtime?this.addMenuItems(b,["save","share","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile?this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&
-this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c);b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"],
-c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var d=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a,e){if(480>=screen.width&&a==this.get("help")){e.style.paddingRight="0px";e.style.paddingLeft="0px";e.innerHTML="";var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("valign",
-"bottom");c.setAttribute("src",Editor.helpImage);e.appendChild(c)}d.apply(this,arguments)}})();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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+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=[],f=c.entries.length-1;0<=f;f--)(function(c){d.push({modifiedDate:c.client_modified,
+fileSize:c.size,getXml:function(d,f){a.dropbox.readFile({path:b.stat.path_lower,rev:c.rev},d,f)},getUrl:function(){return a.getUrl(window.location.pathname+"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[f]);var e=new RevisionDialog(a,d);a.showDialog(e.container,640,480,!0,!0);e.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(f,e){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){f(a.getData())},function(a){e(a)})},function(a){e(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("refresh",function(){function b(){c.setModified(!1);a.loadFile(c.getHash(),!0)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()},null,null,"Alt+Shift+R");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),null,!0))});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}if(isLocalStorage||mxClient.IS_CHROMEAPP)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()&&
+a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=d.getSelectionCells(),c=[],f=0;f<b.length;f++)d.getModel().isVertex(b[f])&&c.push(b[f]);0<c.length&&(b=new EditGeometryDialog(a,c),a.showDialog(b.container,200,250,!0,!0),b.init())},null,null,Editor.ctrlKey+"+Shift+M");var t="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" ");
+a.actions.addAction("copyStyle",function(){var b=d.view.getState(d.getSelectionCell());if(d.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=d.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],c=0;c<b.length;c++){var f=b[c],e=f.indexOf("=");if(0<=e){var g=f.substring(0,e),f=f.substring(e+1);null==a.copiedStyle[g]&&"none"==f&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&
+null!=a.copiedStyle){d.getModel().beginUpdate();try{for(var b=d.getSelectionCells(),c=0;c<b.length;c++)for(var f=d.view.getState(b[c]),e=0;e<t.length;e++){var g=t[e],h=a.copiedStyle[g];f.style[g]!=h&&d.setCellStyles(g,h,[b[c]])}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container,
+320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,f,e,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,f,e,h,!k,l)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,
+function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,f,e,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,f,!1,h,!k,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||
+a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",null,null,b)}),!0)}));f=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){d.setShadowVisible(!d.shadowVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.shadowVisible});var q=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){q||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){q=!1}),
+q=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
+a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});f=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=
+new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&
+this.tagsWindow.window.isVisible()}));f=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140),this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));
+f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var f=""==d?mxResources.get("automatic"):mxLanguageMap[d],e=null;""!=f&&(e=b.addItem(f,
+null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}),c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(e,Editor.checkmarkImage));return e});d("");b.addSeparator(c);for(var f in mxLanguageMap)d(f)}))),"atlas"!=uiTheme){var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=u.apply(this,arguments);if(null!=
+b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>',c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,c){if(!mxClient.IS_CHROMEAPP&&
+a.isOffline())this.addMenuItems(b,["about"],c);else{var f=b.addItem("Search:",null,null,c,null,null,!1);f.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";f.style.cursor="default";var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","25");e.style.marginLeft="8px";mxEvent.addListener(e,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(e.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+
+encodeURIComponent(b)),e.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&&(e.value="")}));f.firstChild.nextSibling.appendChild(e);mxEvent.addGestureListeners(e,function(a){document.activeElement!=e&&e.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){e.focus()},0);this.addMenuItems(b,
+["-","quickStart","userManual","keyboardShortcuts","-"],c);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],c);this.addMenuItems(b,["support","-"],c);a.isOffline()||EditorUi.isElectronApp||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],c);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],c);this.addMenuItems(b,["-","about"],c)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",
+mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),
+mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],c));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,
+function(){var a=d.getGraphBounds(),b=d.view.translate,c=d.view.scale;d.insertVertex(d.getDefaultParent(),null,"",a.x/c-b.x,a.y/c-b.y,a.width/c,a.height/c,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){d.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+d.compress(mxUtils.getXml(d.encodeCells(d.getSelectionCells())))+"', width, height, 'Title');"))})),
+this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],c),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=d.getGraphBounds(),c=d.view.scale,f=mxUtils.createXmlDocument(),e=f.createElement("output");f.appendChild(e);f=new mxXmlCanvas2D(e);f.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));f.scale(1/c);var g=0,m=f.save;f.save=function(){g++;m.apply(this,arguments)};var h=
+f.restore;f.restore=function(){g--;h.apply(this,arguments)};var k=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);k.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(d.getView().getState(d.model.root),f);mxLog.show();mxLog.debug(mxUtils.getXml(e));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],c),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),
+this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",
+mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&
+299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel","testDownloadRtModel"],c),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-",
+"testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(d.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,
+b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,f,e,g,h,m,k,l){a.createHtml(b,c,d,f,e,g,h,m,k,l,mxUtils.bind(this,function(b,c){var d=
+new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');d.writeln("<body>");d.writeln(b);var f=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;f&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!f){var e=a.document.createElement("div");e.marginLeft=
+"26px";e.marginTop="26px";mxUtils.write(e,mxResources.get("updatingDocument"));f=a.document.createElement("img");f.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");f.style.marginLeft="6px";e.appendChild(f);a.document.body.insertBefore(e,a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);e.parentNode.removeChild(e)},
+20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+
+"...",function(){a.showEmbedImageDialog(function(b,c,d,f,e,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,f,e,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,f,e,
+g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,f,e,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=d.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),
+null,"100%",Math.ceil((b.y+b.height-d.view.translate.y)/d.view.scale)+2,function(b,c,d,f,e,g,h,m){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(k){a.spinner.stop();k=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+m+';" src="'+a.createLink(b,c,d,f,e,g,k)+'"></iframe>');a.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,
+null,null,null,function(b,c,d,f,e,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,f,e,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();
+b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)f=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,360,170,!0,!1)});f=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&
+(mxSettings.settings.search=!b,mxSettings.save())});f.setToggleAction(!0);f.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){d.isEditing()&&d.stopEditing();var c="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());if("json"==urlParams.proto){var f=a.createLoadMessage("save");f.xml=c;b&&(f.exit=!0);c=JSON.stringify(f)}(window.opener||window.parent).postMessage(c,
+"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),
+null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b,["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||
+this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(c,f){function e(b){b.pickFile(function(c){a.spinner.spin(document.body,
+mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this,function(b,c,f){var e=d.view,g=d.getGraphBounds(),h=d.snap(Math.ceil(Math.max(0,g.x/e.scale-e.translate.x)+4*d.gridSize)),m=d.snap(Math.ceil(Math.max(0,
+(g.y+g.height)/e.scale-e.translate.y)+4*d.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(e){var g=!0,k=mxUtils.bind(this,function(){a.resizeImage(e,b,mxUtils.bind(this,function(e,k,l){e=g?Math.min(1,Math.min(a.maxImageSize/k,a.maxImageSize/l)):1;a.importFile(b,c,h,m,Math.round(k*e),Math.round(l*e),f,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=
+a;k()}):k()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,c,h,m,0,0,f,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+
+"...",null,function(){e(a.drive)},f):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){e(a.gitHub)},f);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){e(a.dropbox)},f):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",
+null,function(){e(a.oneDrive)},f):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){e(a.trello)},f):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1);c.addSeparator(f);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.importLocalFile(!1)},f);mxClient.IS_IOS||c.addItem(mxResources.get("device")+
+"...",null,function(){a.importLocalFile(!0)},f);a.isOffline()||(c.addSeparator(f),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==
+c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},f))})).isEnabled=k;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),f=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(f,Editor.checkmarkImage);b.addSeparator(c);f=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");
+mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(f,
+Editor.checkmarkImage);f=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(f,Editor.checkmarkImage)})));f=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,
+function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));
+return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));f.isEnabled=function(){return this.enabled&&k.apply(this,arguments)};f.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=a.getCopyFilename(b);b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&
+b.saveAs(c,mxUtils.bind(this,function(c){b.desc=c;b.save(!1,mxUtils.bind(this,function(){a.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):a.createFile(c,a.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("useOffline",
+new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")}));a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.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=function(b,c,d,f){("plantUml"!=f||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==f||"formatSql"==f||"plantUml"==f){var b=new ParseDialog(a,d,f);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow=
+"auto"}else b=new CreateGraphDialog(a,d,f),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},y=function(a,b,c,f){var e=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(e.x,e.y,b,c),f);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{d.getModel().endUpdate()}d.scrollCellToVisible(a);d.setSelectionCell(a);d.container.focus();d.editAfterInsert&&d.startEditing(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;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):w(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,
+"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);A(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));
+this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var f=0;f<d.length;f++)(function(d){var f=d.mode;f==App.MODE_GOOGLE?f="googleDrive":f==App.MODE_ONEDRIVE&&(f="oneDrive");b.addItem(d.title+" ("+mxResources.get(f)+")",null,function(){a.loadFile(d.id)},c)})(d[f]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(c,d){null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},
+d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,
+function(){a.pickFile(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)},
+d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},d);a.isOffline()||(c.addSeparator(d),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},
+mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+
+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+
+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},d);mxClient.IS_IOS||
+c.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},d)})),this.put("openLibraryFrom",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+
+"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=
+a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},d);a.isOffline()||(c.addSeparator(d),
+c.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()},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 editGeometry - 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||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog;
+a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)},null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"},
+{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",
+lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+
+"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom",b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],
+c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],c),null==d.realtime?this.addMenuItems(b,["save","share","-","refresh","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile?
+this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c);
+b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"],c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var d=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a,
+e){if(480>=screen.width&&a==this.get("help")){e.style.paddingRight="0px";e.style.paddingLeft="0px";e.innerHTML="";var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("valign","bottom");c.setAttribute("src",Editor.helpImage);e.appendChild(c)}d.apply(this,arguments)}})();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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
 DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,e,d){this.ui=a;this.page=e;this.previous=this.name=d}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
 function MovePage(a,e,d){this.ui=a;this.oldIndex=e;this.newIndex=d}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,e){this.ui=a;this.previousPage=this.page=e;this.neverShown=!0;null!=e&&(this.neverShown=null==e.viewState,this.ui.updatePageRoot(e))}
@@ -8179,11 +8186,11 @@ null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.page
 a.view.translate.x*a.view.scale+c.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+c.viewState.scrollTop),d=c);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&
 this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,d){for(var e=d.getProperty("edit").changes,g=0;g<e.length;g++)if(e[g]instanceof SelectPage||e[g]instanceof RenamePage||e[g]instanceof MovePage||e[g]instanceof mxRootChange){c();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
 Graph.prototype.createViewState=function(a){var e=a.getAttribute("page"),d=parseFloat(a.getAttribute("pageScale")),c=parseFloat(a.getAttribute("pageWidth")),g=parseFloat(a.getAttribute("pageHeight")),k=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.isLightboxView()?!1:null!=e?"0"!=e:this.defaultPageVisible,background:null!=k&&0<k.length?k:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:isNaN(d)?mxGraph.prototype.pageScale:d,pageFormat:isNaN(c)||isNaN(g)?this.pageFormat:new mxRectangle(0,0,c,c),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),
-selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
+shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=e?"0"!=e:this.defaultPageVisible,background:null!=k&&0<k.length?k:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:isNaN(d)?mxGraph.prototype.pageScale:d,pageFormat:isNaN(c)||isNaN(g)?mxSettings.getPageFormat():new mxRectangle(0,0,c,g),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==
+a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
 Graph.prototype.saveViewState=function(a,e){e.setAttribute("grid",null==a||a.gridEnabled?"1":"0");e.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);e.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");e.setAttribute("tooltips",null==a||a.tooltips?"1":"0");e.setAttribute("connect",null==a||a.connect?"1":"0");e.setAttribute("arrows",null==a||a.arrows?"1":"0");e.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");e.setAttribute("page",null==a&&this.defaultPageVisible||
-null!=a&&a.pageVisible?"1":"0");e.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var d=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=d&&(e.setAttribute("pageWidth",d.width),e.setAttribute("pageHeight",d.height));e.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&e.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));e.setAttribute("math",null!=a&&a.mathEnabled?
-"1":"0");e.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")};
+null!=a&&a.pageVisible?"1":"0");e.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var d=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=d&&(e.setAttribute("pageWidth",d.width),e.setAttribute("pageHeight",d.height));null!=a&&null!=a.background&&e.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&e.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));e.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");e.setAttribute("shadow",
+null!=a&&a.shadowVisible?"1":"0")};
 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}};
 Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat=
@@ -8222,36 +8229,36 @@ c=c.cloneNode(!0);d=c.firstChild;if(null!=d)for(e.relatedPage.root=a.decodeCell(
 "selectDescendants";var e=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,c,d,p,n){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var b=d.slice(),f=[],g=0;g<d.length;g++){var k=this.view.getState(d[g]),l=null!=k?k.style:this.getCellStyle(d[g]);"1"==mxUtils.getValue(l,"treeFolding","0")&&(this.traverse(d[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=d[g]&&f.push(a);return a==d[g]||!this.model.isCollapsed(a)})),
 this.model.setCollapsed(d[g],a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);d=b;d=e.apply(this,arguments)}finally{this.model.endUpdate()}return d};var d=EditorUi.prototype.init;EditorUi.prototype.init=function(){d.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function c(a){return w.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=w.getParent(a),b=u.view.getState(a),u.view.getState(a),b="tree"==(null!=
 b?b.style:u.getCellStyle(a)).containerType);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 p(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 n(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=p(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;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 l=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:l.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 n=f==mxConstants.DIRECTION_SOUTH||
-f==mxConstants.DIRECTION_NORTH,w=g=d=0;w<m.length;w++){var q=u.model.getTerminal(m[w],!1);if(f==p(q)){var t=u.view.getState(q);q!=a&&null!=t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY())&&mxUtils.intersects(l,t)&&(d=10+Math.max(d,(Math.min(l.x+l.width,t.x+t.width)-Math.max(l.x,t.x))/k),g=10+Math.max(g,(Math.min(l.y+l.height,t.y+t.height)-Math.max(l.y,t.y))/k))}}n?g=0:d=0;for(w=0;w<m.length;w++)if(q=u.model.getTerminal(m[w],!1),f==p(q)&&(t=u.view.getState(q),q!=a&&null!=
-t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY()))){var v=[];u.traverse(t.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 b(a){u.model.beginUpdate();try{var b=p(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),l=p(a),m=u.view.translate,n=u.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=
-null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=l==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)/n-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 t(a,b){var c=p(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?q.actions.get("selectParent").funct():
+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 n(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingEdges(a),f=u.cloneCells([d[0],a]);u.model.setTerminal(f[0],u.model.getTerminal(d[0],!0),!0);var e=p(a),g=c.geometry;e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NORTH?f[1].geometry.x+=b?a.geometry.width+10:-f[1].geometry.width-
+10:f[1].geometry.y+=b?a.geometry.height+10:-f[1].geometry.height-10;u.view.currentRoot!=c&&(f[1].geometry.x-=g.x,f[1].geometry.y-=g.y);var h=u.view.getState(a),k=u.view.scale;if(null!=h){var l=mxRectangle.fromRectangle(h);e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-f[1].geometry.width-10)*k:l.y+=(b?a.geometry.height+10:-f[1].geometry.height-10)*k;var m=u.getOutgoingEdges(u.model.getTerminal(d[0],!0));if(null!=m){for(var n=e==mxConstants.DIRECTION_SOUTH||
+e==mxConstants.DIRECTION_NORTH,q=g=d=0;q<m.length;q++){var w=u.model.getTerminal(m[q],!1);if(e==p(w)){var t=u.view.getState(w);w!=a&&null!=t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY())&&mxUtils.intersects(l,t)&&(d=10+Math.max(d,(Math.min(l.x+l.width,t.x+t.width)-Math.max(l.x,t.x))/k),g=10+Math.max(g,(Math.min(l.y+l.height,t.y+t.height)-Math.max(l.y,t.y))/k))}}n?g=0:d=0;for(q=0;q<m.length;q++)if(w=u.model.getTerminal(m[q],!1),e==p(w)&&(t=u.view.getState(w),w!=a&&null!=
+t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY()))){var v=[];u.traverse(t.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(f,c)}finally{u.model.endUpdate()}}function b(a){u.model.beginUpdate();try{var b=p(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 f=u.model.getParent(a),e=f.geometry,g=[];u.view.currentRoot!=
+f&&(d[1].geometry.x-=e.x,d[1].geometry.y-=e.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,f)}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),f=b.geometry,e=[];u.view.currentRoot==b&&(f=new mxRectangle);for(var g=0;g<c.length;g++){var h=u.model.getTerminal(c[g],!1);null!=h&&e.push(h)}var k=u.view.getBounds(e),l=p(a),m=u.view.translate,n=u.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x-f.x+10,d[1].geometry.y+=a.geometry.height-f.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=
+null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x+-f.x+10,d[1].geometry.y-=d[1].geometry.height-f.y+40):(d[1].geometry.x=l==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-f.x+40):d[1].geometry.x+(a.geometry.width-f.x+40),d[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(k.y+k.height)/n-m.y+-f.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 f=0;f<a.length;f++){var e=u.view.getState(u.model.getTerminal(a[f],!1));null!=e&&(!b&&Math.min(e.x+e.width,c.x+c.width)>=Math.max(e.x,c.x)||b&&Math.min(e.y+e.height,c.y+c.height)>=Math.max(e.y,c.y))&&d.push(e)}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 t(a,b){var c=p(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?q.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 q=this,u=q.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 z=q.menus.createPopupMenu;q.menus.createPopupMenu=function(a,b,d){z.apply(this,arguments);if(1==u.getSelectionCount()){b=u.getSelectionCell();var e=u.getOutgoingEdges(b);a.addSeparator();null!=e&&0<e.length&&(c(u.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));c(u.getSelectionCell())&&(a.addSeparator(),0<u.getIncomingEdges(b).length&&
+mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=q.menus.createPopupMenu;q.menus.createPopupMenu=function(a,b,d){y.apply(this,arguments);if(1==u.getSelectionCount()){b=u.getSelectionCell();var f=u.getOutgoingEdges(b);a.addSeparator();null!=f&&0<f.length&&(c(u.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));c(u.getSelectionCell())&&(a.addSeparator(),0<u.getIncomingEdges(b).length&&
 this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};q.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");q.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");q.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");q.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+D");var A=u.removeCells;u.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));b&&(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));c(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 A.apply(this,arguments)};q.hoverIcons.getStateAt=function(a,b,d){return c(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(b,d))};var m=u.duplicateCells;u.duplicateCells=function(a,b){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&&c(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,b);if(h.length==
-a.length)for(e=0;e<a.length;e++)if(c(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,b,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var l=f,m=this.view.getState(f),p=null!=m?m.style:this.getCellStyle(f);if(null!=a&&c(f)&&"1"==mxUtils.getValue(p,"treeFolding",
-"0")){for(var n=0;n<a.length;n++)if(c(a[n])||u.model.isEdge(a[n])&&null==u.model.getTerminal(a[n],!0)){f=u.model.getParent(a[n]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var w=u.getIncomingEdges(a[0]);if(0<w.length){var q=u.view.getState(u.model.getTerminal(w[0],!0));if(null!=q){var t=u.view.getState(l);null!=t&&(b=(t.getCenterX()-q.getCenterX())/u.view.scale,d=(t.getCenterY()-q.getCenterY())/u.view.scale)}}}}k=v.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(n=0;n<
-k.length;n++)if(this.model.isEdge(k[n]))c(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[n],!0))&&this.model.setTerminal(k[n],l,!0);else if(c(a[n])&&(w=u.getIncomingEdges(a[n]),0<w.length))if(!e)c(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(w[0],!0))&&this.model.setTerminal(w[0],l,!0);else if(0==u.getIncomingEdges(k[n]).length){m=l;if(null==m||m==u.model.getParent(a[n]))m=u.model.getTerminal(w[0],!0);e=this.cloneCells([w[0]])[0];this.addEdge(e,u.getDefaultParent(),m,k[n])}}finally{this.model.endUpdate()}return k};
-if(null!=q.sidebar){var x=q.sidebar.dropAndConnect;q.sidebar.dropAndConnect=function(a,b,d,e){var f=u.model,g=null;f.beginUpdate();try{if(g=x.apply(this,arguments),c(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 C={88:q.actions.get("selectChildren"),84:q.actions.get("selectSubtree"),80:q.actions.get("selectParent"),
+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+D");var A=u.removeCells;u.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));b&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var f=[],e=0;e<a.length;e++){var g=a[e];w.isEdge(g)&&d(g)&&(f.push(g),g=w.getTerminal(g,!1));c(g)?(u.traverse(g,!0,function(a,b){null!=b&&f.push(b);f.push(a);return!0}),g=u.getIncomingEdges(a[e]),
+a=a.concat(g)):f.push(a[e])}a=f;return A.apply(this,arguments)};q.hoverIcons.getStateAt=function(a,b,d){return c(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(b,d))};var m=u.duplicateCells;u.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),f=0;f<d.length;f++){var e=u.view.getState(d[f]);if(null!=e&&c(e.cell))for(var g=u.getIncomingEdges(e.cell),e=0;e<g.length;e++)mxUtils.remove(g[e],a)}this.model.beginUpdate();try{var h=m.call(this,a,b);if(h.length==
+a.length)for(f=0;f<a.length;f++)if(c(a[f])){var k=u.getIncomingEdges(h[f]),g=u.getIncomingEdges(a[f]);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[f])}}}finally{this.model.endUpdate()}return h};var v=u.moveCells;u.moveCells=function(a,b,d,f,e,g,h){var k=null;this.model.beginUpdate();try{var l=e,m=this.view.getState(e),p=null!=m?m.style:this.getCellStyle(e);if(null!=a&&c(e)&&"1"==mxUtils.getValue(p,"treeFolding",
+"0")){for(var n=0;n<a.length;n++)if(c(a[n])||u.model.isEdge(a[n])&&null==u.model.getTerminal(a[n],!0)){e=u.model.getParent(a[n]);break}if(null!=l&&e!=l&&null!=this.view.getState(a[0])){var q=u.getIncomingEdges(a[0]);if(0<q.length){var w=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=w){var t=u.view.getState(l);null!=t&&(b=(t.getCenterX()-w.getCenterX())/u.view.scale,d=(t.getCenterY()-w.getCenterY())/u.view.scale)}}}}k=v.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(n=0;n<
+k.length;n++)if(this.model.isEdge(k[n]))c(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[n],!0))&&this.model.setTerminal(k[n],l,!0);else if(c(a[n])&&(q=u.getIncomingEdges(a[n]),0<q.length))if(!f)c(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==u.getIncomingEdges(k[n]).length){m=l;if(null==m||m==u.model.getParent(a[n]))m=u.model.getTerminal(q[0],!0);f=this.cloneCells([q[0]])[0];this.addEdge(f,u.getDefaultParent(),m,k[n])}}finally{this.model.endUpdate()}return k};
+if(null!=q.sidebar){var x=q.sidebar.dropAndConnect;q.sidebar.dropAndConnect=function(a,b,d,f){var e=u.model,g=null;e.beginUpdate();try{if(g=x.apply(this,arguments),c(a))for(var h=0;h<g.length;h++)if(e.isEdge(g[h])&&null==e.getTerminal(g[h],!0)){e.setTerminal(g[h],a,!0);var k=u.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{e.endUpdate()}return g}}var C={88:q.actions.get("selectChildren"),84:q.actions.get("selectSubtree"),80:q.actions.get("selectParent"),
 83:q.actions.get("selectSiblings")},B=q.onKeyDown;q.onKeyDown=function(a){try{if(u.isEnabled()&&!u.isEditing()&&c(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingEdges(u.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?b(u.getSelectionCell()):f(u.getSelectionCell()):13==a.which&&(d=n(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!=q.hoverIcons&&q.hoverIcons.update(u.view.getState(u.getSelectionCell())),u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=C[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_EAST),
-mxEvent.consume(a)):40==a.keyCode&&(t(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||B.apply(this,arguments)};var H=u.connectVertex;u.connectVertex=function(a,d,e,g,h,k){var l=u.getIncomingEdges(a);return c(a)&&0<l.length?(e=p(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?b(a):n(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):
-H.call(this,a,d,e,g,h,k)};u.getSubtree=function(a){var b=[a];c(a)&&!e(a)&&u.traverse(a,!0,function(a,c){null!=c&&0>mxUtils.indexOf(b,c)&&b.push(c);0>mxUtils.indexOf(b,a)&&b.push(a);return!0});return b};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);c(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=
+mxEvent.consume(a)):40==a.keyCode&&(t(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||B.apply(this,arguments)};var F=u.connectVertex;u.connectVertex=function(a,d,e,g,h,k){var l=u.getIncomingEdges(a);return c(a)&&0<l.length?(e=p(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?b(a):n(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):
+F.call(this,a,d,e,g,h,k)};u.getSubtree=function(a){var b=[a];c(a)&&!e(a)&&u.traverse(a,!0,function(a,c){null!=c&&0>mxUtils.indexOf(b,c)&&b.push(c);0>mxUtils.indexOf(b,a)&&b.push(a);return!0});return b};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);c(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 F=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){F.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+
+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 G=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){G.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),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 c=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");
-c.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 b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.relative=!0;b.edge=!0;c.insertEdge(b,!0);d.insertEdge(b,!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;c.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 q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-q.geometry.relative=!0;q.edge=!0;c.insertEdge(q,!0);k.insertEdge(q,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");u.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;c.insertEdge(w,!0);u.insertEdge(w,!1);a.insert(b);a.insert(g);a.insert(q);a.insert(w);a.insert(c);a.insert(d);a.insert(e);a.insert(k);a.insert(u);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],
+c.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 b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.relative=!0;b.edge=!0;c.insertEdge(b,!0);d.insertEdge(b,!1);var f=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;");
+f.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);f.insertEdge(e,!1);var g=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
+k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");u.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;c.insertEdge(w,!0);u.insertEdge(w,!1);a.insert(b);a.insert(e);a.insert(k);a.insert(w);a.insert(c);a.insert(d);a.insert(f);a.insert(g);a.insert(u);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 c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
 c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;a.insertEdge(c,!1);return sb.createVertexTemplateFromCells([a,c],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 c=new mxCell("",new mxGeometry(0,
 0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;a.insertEdge(c,!1);return sb.createVertexTemplateFromCells([a,c],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",
@@ -8267,7 +8274,7 @@ g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("di
 d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=c("newLibrary",mxResources.get("newLibrary")),d.style.left=
 "0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()}
 if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var c=document.createElement("style");c.type="text/css";c.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }";
-document.getElementsByTagName("head")[0].appendChild(c)}catch(w){}var g=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
+document.getElementsByTagName("head")[0].appendChild(c)}catch(w){}var g=function(a,b,c,d,f,e,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,f,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
 this.window.setLocation=function(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)}};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
 mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
 mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
@@ -8288,20 +8295,20 @@ null);h.apply(this,arguments)};var t=EditorUi.prototype.setGraphEnabled;EditorUi
 b.actions.get("insertText").label=mxResources.get("text");b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("insertRectangle").label=mxResources.get("rectangle");b.actions.get("insertEllipse").label=mxResources.get("ellipse");b.actions.get("insertRhombus").label=mxResources.get("rhombus");b.actions.get("insertImage").label=mxResources.get("image")+"...";b.actions.get("insertLink").label=mxResources.get("link")+"...";b.actions.get("createShape").label=mxResources.get("shape")+
 "...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importFile",new Action("File...",function(){c.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&b.importFiles(a.files,null,null,b.maxImageSize)});a.click()}));b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu();
 b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){e(b)}));b.actions.put("toggleFormat",
-new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,
-"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime&&b.menus.addMenuItems(a,["chatWindowTitle"],
-c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var d=this.get("openFrom"),f=d.funct;d.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,c)}}this.put("save",new Menu(mxUtils.bind(this,
-function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],c);b.menus.addMenuItems(a,["-","autosave"],
-c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips"],
-c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+
-mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
-l=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=
-b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var u=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=n.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),l);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
-f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
-"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage=
+new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
+b.menus.addMenuItems(a,"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime?b.menus.addMenuItems(a,["chatWindowTitle"],
+c):b.menus.addMenuItems(a,["-","refresh"],c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var d=this.get("openFrom"),f=d.funct;d.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,
+c)}}this.put("save",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],
+c);b.menus.addMenuItems(a,["-","autosave"],c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,
+["scrollbars","tooltips"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));
+mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
+l=function(a,c,d,f){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,f);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=
+b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var u=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var f=g.menus.get(a),e=n.addMenu(mxResources.get(a),mxUtils.bind(this,function(){f.funct.apply(this,arguments)}),l);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box";
+e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.setAttribute("title",mxResources.get(a));g.menus.menuCreated(f,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML="",mxUtils.setOpacity(e,d||40)):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition=
+"right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage=
 "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor=
 ""):(h.setAttribute("disabled","disabled"),mxUtils.setOpacity(h,null!=f?10:20),h.style.cursor="default")},e.addListener("stateChanged",a),a());return h}function c(a){var b=document.createElement("div");b.className="geMenuItem";b.style.display="inline-block";b.style.verticalAlign="top";b.style.marginRight="6px";b.style.padding="0 4px 0 4px";b.style.height="30px";b.style.position="relative";b.style.top="0px";for(var c=0;c<a.length;c++)null!=a[c]&&(a[c].style.margin="0px",a[c].style.boxShadow="none",
-b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function e(){for(var e=k.firstChild;null!=e;){var f=e.nextSibling;"geMenuItem"!=e.className&&"geItem"!=e.className||e.parentNode.removeChild(e);e=f}l=k.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(e=900>d)||a("diagram");c([e?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,
+b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function f(){for(var e=k.firstChild;null!=e;){var f=e.nextSibling;"geMenuItem"!=e.className&&"geItem"!=e.className||e.parentNode.removeChild(e);e=f}l=k.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(e=900>d)||a("diagram");c([e?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,
 null,mxResources.get("shapes"),g.actions.get("image"),e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"),
 e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
 null)]);f=a("insert",!0,e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null,40);c([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":
@@ -8311,15 +8318,15 @@ c([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.tra
 640<=d?b("",e.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",e,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="):
 null,640<=d?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="):
 null])}e=g.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=d?(f=n.addMenu("",e.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)",
-f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}u.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
-f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var l=null,n=new Menubar(g,k);g.statusContainer=
+f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}u.apply(this,arguments);var e=document.createElement("div");e.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
+e.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(e);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var l=null,n=new Menubar(g,k);g.statusContainer=
 g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var p=g.descriptorChanged;g.descriptorChanged=function(){p.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=
 a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer=
-document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,q=document.createElement("div");q.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var t=g.menus.get("viewZoom");if(null!=
+document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var e=g.diagramContainer.parentNode,q=document.createElement("div");q.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var t=g.menus.get("viewZoom");if(null!=
 t){this.tabContainer.style.right="70px";var D=n.addMenu("100%",t.funct);D.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");D.style.whiteSpace="nowrap";D.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";D.style.backgroundPosition="right 6px center";D.style.backgroundRepeat="no-repeat";D.style.backgroundColor="#ffffff";D.style.paddingRight="10px";D.style.display="block";D.style.position="absolute";D.style.textDecoration="none";D.style.textDecoration="none";D.style.right=
 "0px";D.style.bottom="0px";D.style.overflow="hidden";D.style.visibility="hidden";D.style.textAlign="center";D.style.color="#000";D.style.fontSize="12px";D.style.color="#707070";D.style.width="59px";D.style.borderTop="1px solid lightgray";D.style.borderLeft="1px solid lightgray";D.style.height=parseInt(g.tabContainer.style.height)-1+"px";D.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";q.appendChild(D);t=mxUtils.bind(this,function(){D.innerHTML=Math.round(100*g.editor.graph.view.scale)+
-"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,t);g.editor.addListener("resetGraphView",t);g.editor.addListener("pageSelected",t);var G=g.setGraphEnabled;g.setGraphEnabled=function(){G.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}q.appendChild(g.tabContainer);q.appendChild(k);q.appendChild(g.diagramContainer);f.appendChild(q);g.updateTabContainer();
-e();mxEvent.addListener(window,"resize",function(){e();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}};
+"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,t);g.editor.addListener("resetGraphView",t);g.editor.addListener("pageSelected",t);var H=g.setGraphEnabled;g.setGraphEnabled=function(){H.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}q.appendChild(g.tabContainer);q.appendChild(k);q.appendChild(g.diagramContainer);e.appendChild(q);g.updateTabContainer();
+f();mxEvent.addListener(window,"resize",function(){f();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}};
 (function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var e=EditorUi.initTheme;EditorUi.initTheme=function(){e.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
 Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;
 LucidImporter={};
@@ -8916,7 +8923,7 @@ c,b,p)}};h.prototype.sanitiseGraph=function(c){var b=c.getModel().getRoot();this
 -1==p.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=p.indexOf("image=")?!1:!0};return h}();w.mxVsdxCodec=l;l.__class="com.mxgraph.io.mxVsdxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
 (function(c){(function(m){(function(w){var l=function(h){function f(){var b=h.call(this)||this;b.RESPONSE_END="";b.RESPONSE_DIAGRAM_START="";b.RESPONSE_DIAGRAM_END="";b.RESPONSE_HEADER="";return b}__extends(f,h);f.prototype.decodeVssx=function(b,a,d){var g=this,p="<mxlibrary>[";this.decodeVsdx(b,function(b){p=p.concat(b);var d=g.vsdxModel.getMasterShapes(),f=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=[];null==
 a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)b.push(a.entries[d].value);return b}(g.vsdxModel.getPages())).next();if(null!=d){var D={str:"",toString:function(){return this.str}},l=0===b.length?"":",",w=function(a){return Object.keys(a).map(function(b){return a[b]})}(d);b=function(a){a=w[a];var b=m.createMxGraph(),g=a.getMasterShape().getShape(),g=new c.mxgraph.io.vsdx.VsdxShape(f,g,!f.isEdge(g),d,null,m.vsdxModel),p=1;if(null!=a.pageSheet){var x=p=1,E=a.pageSheet.DrawingScale;null!=
-E&&(p=parseFloat(E.getAttribute("V")));E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V")));p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===
+E&&(p=parseFloat(E.getAttribute("V"))||1);E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V"))||1);p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===
 b)return a.entries[d].value;return null}(m.parentsMap,t.getKey());m.addUnconnectedEdge(b,z,t.getValue(),1169)}else x=m.addUnconnectedEdge(b,null,g,1169);if(null!=x){m.scaleGraph(b,p);g=m.normalizeGeo(x);m.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";D.str=D.str.concat(l);D.str=D.str.concat('{"xml":"');b=h.prototype.processPage.call(m,b,null);D.str=D.str.concat(b);D.str=D.str.concat('","w":');D.str=D.str.concat(g.width);D.str=D.str.concat(',"h":');D.str=
 D.str.concat(g.height);D.str=D.str.concat(',"title":');a=a.getName();null==a&&(a="");a=JSON.stringify(mxUtils.htmlEntities(a));D.str=D.str.concat(a);D.str=D.str.concat("}");l=","}};for(var m=g,C=0;C<w.length;C++)b(C);p=p.concat(D)}p=p.concat("]</mxlibrary>");a&&a(p)},d)};f.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var d=a.sourcePoint;if(b.isEdge()&&null!=d){this.transPoint(a.targetPoint,d);this.transPoint(a.offset,d);b=a.points;if(null!=b)for(var g=0;g<b.length;g++)this.transPoint(b[g],
 d);this.transPoint(d,d)}return a};f.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};f.prototype.processPage=function(b,a){var d=b.getModel(),g="",p="",f;for(f in d.cells){var E=d.cells[f];if(b.getDefaultParent()===d.getParent(E)){var g=g.concat(p),g=g.concat('{"xml":"'),x=this.createMxGraph();x.addCell(E);this.sanitiseGraph(x);if(0===x.getModel().getChildCount(x.getDefaultParent()))return"continue";p=this.normalizeGeo(E);x=h.prototype.processPage.call(this,x,null);g=g.concat(x);g=
@@ -8924,8 +8931,8 @@ g.concat('","w":');g=g.concat(p.width);g=g.concat(',"h":');g=g.concat(p.height);
 p.entries[t].key===x){p=p.entries[t].value;break a}p=null}null!=p&&(E=p.getName())}g=g.concat(E);g=g.concat('"}');p=","}}this.RESPONSE_DIAGRAM_START=0<g.length?",":"";return g};return f}(c.mxgraph.io.mxVsdxCodec);w.mxVssxCodec=l;l.__class="com.mxgraph.io.mxVssxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
 (function(c){(function(c){(function(c){(function(c){(function(c){var f=function(){function b(a,b,g){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=g}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA=
 function(){return this.formulaA};b.prototype.getFormulaE=function(){return this.formulaE};b.prototype.getIndex=function(){return this.index};return b}();c.Row=f;f.__class="com.mxgraph.io.vsdx.geometry.Row"})(c.geometry||(c.geometry={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null,h=null,
-l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J);
+(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null,
+h=null,l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J);
 break;case "E":w=J}}switch(g){case "MoveTo":return new c.mxgraph.io.vsdx.geometry.MoveTo(p,f,x);case "LineTo":return new c.mxgraph.io.vsdx.geometry.LineTo(p,f,x);case "ArcTo":return new c.mxgraph.io.vsdx.geometry.ArcTo(p,f,x,t);case "Ellipse":return new c.mxgraph.io.vsdx.geometry.Ellipse(p,f,x,t,h,l,m);case "EllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.EllipticalArcTo(p,f,x,t,h,l,m);case "InfiniteLine":return new c.mxgraph.io.vsdx.geometry.InfiniteLine(p,f,x,t,h);case "NURBSTo":return new c.mxgraph.io.vsdx.geometry.NURBSTo(p,
 f,x,t,h,l,m,w);case "PolylineTo":return new c.mxgraph.io.vsdx.geometry.PolylineTo(p,f,x,A);case "RelCubBezTo":return new c.mxgraph.io.vsdx.geometry.RelCubBezTo(p,f,x,t,h,l,m);case "RelEllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(p,f,x,t,h,l,m);case "RelLineTo":return new c.mxgraph.io.vsdx.geometry.RelLineTo(p,f,x);case "RelMoveTo":return new c.mxgraph.io.vsdx.geometry.RelMoveTo(p,f,x);case "RelQuadBezTo":return new c.mxgraph.io.vsdx.geometry.RelQuadBezTo(p,f,x,t,h);case "SplineKnot":return new c.mxgraph.io.vsdx.geometry.SplineKnot(p,
 f,x,t);case "SplineStart":return new c.mxgraph.io.vsdx.geometry.SplineStart(p,f,x,t,h,l,m)}}return new c.mxgraph.io.vsdx.geometry.DelRow(p)};return b}();h.RowFactory=f;f.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(l.geometry||(l.geometry={}))})(m.vsdx||(m.vsdx={}))})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
@@ -8946,7 +8953,7 @@ h.BULLET="Bullet";h.CASE="Case";h.CHARACTER="Character";h.COLOR="Color";h.COLOR_
 "TextBlock";h.TEXT_STYLE="TextStyle";h.TO_PART="ToPart";h.TO_SHEET="ToSheet";h.TOP_MARGIN="TopMargin";h.TRUE="1";h.TXT_ANGLE="TxtAngle";h.TXT_HEIGHT="TxtHeight";h.TXT_LOC_PIN_X="TxtLocPinX";h.TXT_LOC_PIN_Y="TxtLocPinY";h.TXT_PIN_X="TxtPinX";h.TXT_PIN_Y="TxtPinY";h.TXT_WIDTH="TxtWidth";h.TYPE="Type";h.TYPE_GROUP="Group";h.TYPE_SHAPE="Shape";h.UNIQUE_ID="UniqueID";h.VERTICAL_ALIGN="VerticalAlign";h.WIDTH="Width";h.X_CON="XCon";h.X_DYN="XDyn";h.X="X";h.Y_CON="YCon";h.Y_DYN="YDyn";h.Y="Y";h.HIDE_TEXT=
 "HideText";h.VSDX_ID="vsdxID";h.CONNECT_TO_PART_WHOLE_SHAPE=3;c.mxVsdxConstants=h;h.__class="com.mxgraph.io.vsdx.mxVsdxConstants"})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
 (function(c){(function(m){(function(m){(function(l){var h=function(){function f(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]),
-this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType||
+this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))||0}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType||
 null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};f.prototype.processGeoElem=function(b){var a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var d=0;d<b.length;d++)0<this.rows.push(null)}for(d=0;d<a.length;d++){var g=a[d],p=g.getAttribute("N"),g=g.getAttribute("V");switch(p){case "NoFill":this.noFill=
 function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g)}}a=this.rows.length;d=!1;for(p=0;p<b.length;p++)g=c.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[p],
 this.rows),g.getIndex()>a?(0<this.rows.push(g),d=!0):this.rows[g.getIndex()-1]=g;d&&function(a,b){b.compare?a.sort(function(a,d){return b.compare(a,d)}):a.sort(b)}(this.rows,new f.mxVsdxGeometry$0(this))};f.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};f.prototype.getIndex$=function(){return this.index};f.prototype.isNoFill=function(){return this.noFill};
@@ -9201,7 +9208,7 @@ this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,d){f.prototype
 a.equals?a.equals(b):a===b}(h,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"EnhMetaFile"))g="png";else return;h=a.firstChild;if(null!=h){if(null!=h&&1==h.nodeType){var l=h;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(l.nodeName.toLowerCase(),"rel")&&(l=l.getAttribute("r:id"),null!=l&&0!==l.length)){var h=p.lastIndexOf("/"),m="",t="";try{m=p.substring(0,h),t=p.substring(h,p.length)}catch(z){return}h=d.getRelationship(l,m+"/_rels"+t+".rels");if(null!=h){p=h.getAttribute("Target")||
 "";l=h.getAttribute("Type");h=p.lastIndexOf("/");try{p=p.substring(h+1,p.length)}catch(z){return}null!=l&&function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(l,"image")&&(this.imageData={},(h=d.getMedia(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+p))?(this.imageData.iData=h,function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(p.toLowerCase(),".bmp")&&(g="jpg"),this.imageData.iType=g):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}return}}h=
 h.nextSibling}}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(g,c.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=a)};b.prototype.parseSection=function(a){var d=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Geometry"))null==this.geom&&(this.geom=[]),0<this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Field")){a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var g=0;g<a.length;g++){var d=a[g],p=d.getAttribute("IX")||
-"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V");switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+
+"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V")||z.textContent||"";switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+
 Math.floor(864E5*parseFloat(l)))).toString())}catch(aa){}this.fields[p]=l}}}}else f.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};b.prototype.getHeight=function(){return 0===
 this.height&&0<this.width?1:this.height};b.prototype.getRotation=function(){return this.rotation};b.prototype.getStyleMap=function(){return this.styleMap};b.prototype.hasGeom=function(){return!(null==this.geom||0==this.geom.length)};b.prototype.hasGeomList=function(){return null!=this.geomList&&this.geomList.hasGeom()};b.prototype.textToList=function(a,b){if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"")){var d=this.getBullet(b);if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(d,
 "0")){var f=a.split("\n");f[f.length-1]||f.pop();for(var h="",l=0;l<f.length;l++)h+=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(f[l],"li");h=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(h,"ul");f={};(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"4")?f["list-style-type"]="square":f["list-style-type"]="disc";return h=this.insertAttributes(h,f)}}return a};b.prototype.getTextParagraphFormated=function(a){var b="",g={};g.align=this.getHorizontalAlign(this.pp,!0);g["margin-left"]=this.getIndentLeft(this.pp);
@@ -9291,7 +9298,7 @@ b.prototype.getMasterName=function(){return this.shapeName};b.prototype.setLabel
 if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Organizational unit")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Organizational unit")){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0),d=null,d="0.0",f=null,f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.hasAttribute("F")?d.getAttribute("F"):d.textContent,f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),
 f=f.hasAttribute("F")?f.getAttribute("F"):f.textContent);h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Inh")&&(d="0.0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(f,"Inh")&&(f="-0.4");-1!=f.indexOf("txtHeight")&&(f="-0.4");for(var l=b.split(";"),m="",t=0;t<l.length;t++){var z=l[t],z=z.trim();(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(z,"tabHeight=")&&
 (m=z.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(m,"")&&(m="20");l=parseFloat(m);d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f-l/2);a.getGeometry().offset=d}else if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Domain 3D")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Domain 3D")){h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);d=null;
-d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F"),f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F"));h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b):
+d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F")||"",f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F")||"");h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b):
 a===b}(f,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(f,""))f="-0.4";-1!=f.indexOf("txtHeight")&&(f="-0.4");d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f);a.getGeometry().offset=d}};b.prototype.getForm=function(){var a={};if(this.isVertex())try{var d=b.getType(this.getShape());this.styleDebug("shape type = "+d);if(null!=this.imageData||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN,d)&&null!=this.masterShape&&
 null!=this.masterShape.imageData){var f=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var h=function(a,b){return a[b]?a[b]:null}(f,"iType"),l=function(a,b){return a[b]?a[b]:null}(f,"iData");a.image="data:image/"+h+","+l;return a}var m=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m,""))return this.styleDebug("No geom found"),a;var x=Graph.prototype.compress(m);a[mxConstants.STYLE_SHAPE]="stencil("+x+")"}catch(t){console.error(t.message,
 t)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName);
@@ -9303,8 +9310,8 @@ a===b}(f.toLowerCase(),"width*1")&&function(a,b){return a&&a.equals?a.equals(b):
 b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a.toLowerCase(),"controls.row_")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(b.toLowerCase(),"controls.row_"))?!1:!0};b.prototype.isRotatedLabel=function(){var a=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V","");null!=this.masterShape&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")&&(a=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V",""));return function(a,b){return a&&
 a.equals?a.equals(b):a===b}(a,"0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0.0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")?!1:!0};b.prototype.setRootShape=function(a){this.rootShape=a};b.prototype.getRootShape=function(){return this.rootShape};b.prototype.getStartXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X),0))/100);a=Math.floor(Math.round(100*
 (a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getEndXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_X),0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_Y),
-0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F"),
-h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=
+0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F")||
+"",h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=
 this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=d));d=this.getEdgeMarker(!0);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_STARTFILL]=
 "0"),this.styleMap[mxConstants.STYLE_STARTARROW]=d);d=this.getEdgeMarker(!1);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_ENDFILL]="0"),this.styleMap[mxConstants.STYLE_ENDARROW]=d);d=Math.round(this.getStartArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_STARTSIZE]=""+d);d=Math.round(this.getFinalArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_ENDSIZE]=
 ""+d);d=Math.round(this.getLineWidth())|0;1!==d&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+d);d=this.getStrokeColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"")||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=d);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE);this.isConnectorBigNameU(this.getNameU())&&(this.styleMap[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_ARROW,d=this.getFillColor(),function(a,b){return a&&a.equals?a.equals(b):
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 38dd21664..65254c35f 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -186,6 +186,16 @@ 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';
 
+/**
+ * Switch to disable Google realtime. If true this will convert existing realtime files.
+ */
+App.GOOGLE_REALTIME = urlParams['google-realtime'] != '0';
+
+/**
+ * Switch to disable Google realtime. If true this will convert existing realtime files.
+ */
+App.GOOGLE_APIS = 'client,drive-share' + ((App.GOOGLE_REALTIME) ? ',drive-realtime' : ''); 
+
 /**
  * Defines plugin IDs for loading via p URL parameter. Update the table at
  * https://desk.draw.io/solution/articles/16000042546
@@ -400,6 +410,7 @@ App.getStoredMode = function()
  */
 App.main = function(callback, createUi)
 {
+	var sessionId = Editor.guid();
 	var lastErrorMessage = null;
 	
 	// Changes top level error handling
@@ -420,16 +431,19 @@ App.main = function(callback, createUi)
 				else if (message != null && message.indexOf('DocumentClosedError') < 0)
 				{
 					lastErrorMessage = message;
-					var img = new Image();
 					var severity = (message.indexOf('NetworkError') >= 0 || message.indexOf('SecurityError') >= 0 ||
 						message.indexOf('NS_ERROR_FAILURE') >= 0 || message.indexOf('out of memory') >= 0) ?
 						'CONFIG' : 'SEVERE';
 					var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
-			    		img.src = logDomain + '/log?severity=' + severity + '&v=' + encodeURIComponent(EditorUi.VERSION) +
-			    			'&msg=clientError:' + encodeURIComponent(message) + ':url:' + encodeURIComponent(window.location.href) +
-			    			':lnum:' + encodeURIComponent(linenumber) + 
-			    			((colno != null) ? ':colno:' + encodeURIComponent(colno) : '') +
-			    			((err != null && err.stack != null) ? '&stack=' + encodeURIComponent(err.stack) : '');
+
+					var img = new Image();
+					img.src = logDomain + '/log?severity=' + severity + '&v=' + encodeURIComponent(EditorUi.VERSION) +
+		    			'&msg=clientError:' + encodeURIComponent(message) +
+		    			':url:' + encodeURIComponent(window.location.href) +
+		    			':lnum:' + encodeURIComponent(linenumber) + 
+		    			((colno != null) ? ':colno:' + encodeURIComponent(colno) : '') +
+		    			((err != null && err.stack != null) ? '&stack=' + encodeURIComponent(err.stack) : '') +
+		    			'&sid=' + sessionId;
 				}
 			}
 			catch (err)
@@ -438,7 +452,7 @@ App.main = function(callback, createUi)
 			}
 		};
 	}
-
+	
 	if (window.mxscript != null)
 	{
 		/**
@@ -960,10 +974,10 @@ App.prototype.init = function()
 				
 				if (window.DrawGapiClientCallback != null)
 				{
-					gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:client,drive-realtime,drive-share', mxUtils.bind(this, function(resp)
+					gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:' + App.GOOGLE_APIS, mxUtils.bind(this, function(resp)
 					{
 						// Starts the app without the Google Option if the API fails to load
-						if (gapi.drive != null && gapi.drive.realtime != null)
+						if (gapi.client != null)
 						{
 							gapi.client.load('drive', 'v2', mxUtils.bind(this, function()
 							{
@@ -1751,7 +1765,7 @@ App.prototype.appIconClicked = function(evt)
 		
 		if (mode == App.MODE_GOOGLE)
 		{
-			if (file.desc != null && file.desc.parents.length > 0)
+			if (file.desc != null && file.desc.parents != null && file.desc.parents.length > 0)
 			{
 				// Opens containing folder
 				this.openLink('https://drive.google.com/drive/folders/' + file.desc.parents[0].id);
@@ -1901,13 +1915,13 @@ App.prototype.loadGapi = function(then)
 {
 	if (typeof gapi !== 'undefined')
 	{
-		gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:client,drive-realtime,drive-share', mxUtils.bind(this, function(resp)
+		gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:' + App.GOOGLE_APIS, mxUtils.bind(this, function(resp)
 		{
 			// Starts the app without the Google Option if the API fails to load
-			if (gapi.drive == null || gapi.drive.realtime == null)
+			if (gapi.client == null)
 			{
-				this.mode = null;
 				this.drive = null;
+				this.mode = null;
 				then();
 			}
 			else
@@ -1919,8 +1933,8 @@ App.prototype.loadGapi = function(then)
 					{
 						if (gapi.client.drive == null)
 						{
-							this.mode = null;
 							this.drive = null;
+							this.mode = null;
 						}
 						
 						then();
@@ -2001,6 +2015,26 @@ App.prototype.load = function()
 	}
 };
 
+/**
+ * Adds the listener for automatically saving the diagram for local changes.
+ */
+App.prototype.showRefreshDialog = function(title, message)
+{
+	if (!this.showingRefreshDialog)
+	{
+		this.showingRefreshDialog = true;
+
+		this.showError(title || mxResources.get('error'),
+			message || mxResources.get('redirectToNewApp'),
+			mxResources.get('refresh'), mxUtils.bind(this, function()
+		{
+			this.spinner.spin(document.body, mxResources.get('connecting'));
+			this.editor.graph.setEnabled(false);
+			window.location.reload();
+		}));
+	}
+};
+
 /**
  * Called in start after the spinner stops.
  */
@@ -4104,6 +4138,11 @@ App.prototype.save = function(name, done)
 		
 		var error = mxUtils.bind(this, function(resp)
 		{
+			if (this.getCurrentFile() == file && file.isModified())
+			{
+				file.addUnsavedStatus();
+			}
+			
 			// Spinner is paused and resumed in handleError
 			this.handleError(resp, (resp != null) ? mxResources.get('errorSavingFile') : null);
 		});
diff --git a/src/main/webapp/js/diagramly/DistanceGuides.js b/src/main/webapp/js/diagramly/DistanceGuides.js
index b35a72c8f..11dbf7665 100644
--- a/src/main/webapp/js/diagramly/DistanceGuides.js
+++ b/src/main/webapp/js/diagramly/DistanceGuides.js
@@ -26,6 +26,8 @@
 	{
 	    var yShift = delta.y;
 	    var xShift = delta.x;
+	    var hasHorGuides = false;
+	    var hasVerGuides = false;
 	
 	    if (this.states != null && bounds != null && delta != null) 
 	    {
@@ -68,11 +70,13 @@
 		  }
 	      
 	      var eqCy = 0;
+	      var dy = 0;
+	      var fixedDy = 0;
+	      var midDy = 0;
 	      var eqCx = 0;
-	      var dy = 0.0;
-	      var fixedDy = 0.0;
-	      var dx = 0.0;
-	      var fixedDx = 0.0;
+	      var dx = 0;
+	      var fixedDx = 0;
+	      var midDx = 0;
 	      var shift = 5 * scale;
 	      
 	      if (verticalCells.length > 1) 
@@ -84,29 +88,75 @@
 	          return s1.y - s2.y;
 	        });
 	        
+	        var newStatePassed = false;
+            var firstMoving = newState == verticalCells[0];
+            var lastMoving = newState == verticalCells[verticalCells.length - 1];
+            
+            //find the mid space and use it as dy and fixedDy
+            if (!firstMoving && !lastMoving)
+        	{
+            	for (var i = 1; i < verticalCells.length - 1; i++)
+    	  	  	{
+            		if (newState == verticalCells[i])
+        			{
+            			var s1 = verticalCells[i - 1];
+            			var s3 = verticalCells[i + 1];
+            			midDy = (s3.y - s1.y - s1.height - newState.height) / 2;
+            			dy = midDy;
+            			fixedDy = dy;
+            			break;
+        			}
+    	  	  	}
+        	}
+	        
 	        for (var i = 0; i < verticalCells.length - 1; i++)
 	  	  	{
 	            var s1 = verticalCells[i];
 	            var s2 = verticalCells[i + 1];
 	            var isMovingOne = newState == s1 || newState == s2;
-	            
 	            var curDy = s2.y - s1.y - s1.height;
 	            
-	            if (!isMovingOne)
-	        	{
-	            	fixedDy = curDy;
-	        	}
-	            
-	            if (eqCy == 0) 
+	            newStatePassed |= newState == s1;
+
+	            if (dy == 0 && eqCy == 0)
 	            {
 	              dy = curDy;
 	              eqCy = 1;
 	            }
-	            else if (Math.abs(dy - curDy) <= (isMovingOne? tolerance : tolerance)) 
+                else if (Math.abs(dy - curDy) <= (isMovingOne || (i == 1 && newStatePassed)? tolerance : 0)) //non-moving cells must have exact same dy, must handle the case of having the first cell moving so we allow tolerance for second cell (until fixedDy is non-zero) 
 	            {
 	              eqCy += 1;
 	            }
-	        }
+	            else if (eqCy > 1 && newStatePassed) //stop and ignore the following cells
+            	{
+	              verticalCells = verticalCells.slice(0, i + 1);
+	              break;
+            	}
+	            else if (verticalCells.length - i >= 3 && !newStatePassed) //reset and start counting again
+            	{
+	      	      eqCy = 0;
+	    	      dy = midDy != 0? midDy : 0;
+	    	      fixedDy = dy;
+	    	      verticalCells.splice(0, i == 0? 1 : i);
+	    	      i = -1;
+            	}
+	            else
+            	{
+		          break;
+            	}
+
+	            if (fixedDy == 0 && !isMovingOne)
+	        	{
+	            	fixedDy = curDy;
+	            	//Update dy such that following cells shows equal distance guides without tolerance
+	            	dy = fixedDy;
+	        	}
+	  	  	}
+	        
+            if (verticalCells.length == 3 && verticalCells[1] == newState) 
+        	{
+              fixedDy = 0;
+        	}
 	      }
 	      
 	      if (horizontalCells.length > 1) 
@@ -118,36 +168,81 @@
 	          return s1.x - s2.x;
 	        });
 	
+	        var newStatePassed = false;
+            var firstMoving = newState == horizontalCells[0];
+            var lastMoving = newState == horizontalCells[horizontalCells.length - 1];
+	        
+            //find the mid space and use it as dx and fixedDx
+            if (!firstMoving && !lastMoving)
+        	{
+            	for (var i = 1; i < horizontalCells.length - 1; i++)
+    	  	  	{
+            		if (newState == horizontalCells[i])
+        			{
+            			var s1 = horizontalCells[i - 1];
+            			var s3 = horizontalCells[i + 1];
+            			midDx = (s3.x - s1.x - s1.width - newState.width) / 2;
+            			dx = midDx;
+            			fixedDx = dx;
+            			break;
+        			}
+    	  	  	}
+        	}            
+            
 	        for (var i = 0; i < horizontalCells.length - 1; i++)
 	  	  	{
 	            var s1 = horizontalCells[i];
 	            var s2 = horizontalCells[i + 1];
 	            var isMovingOne = newState == s1 || newState == s2;
-	            
 	            var curDx = s2.x - s1.x - s1.width;
 	            
-	            if (!isMovingOne)
-	        	{
-	            	fixedDx = curDx;
-	        	}
+	            newStatePassed |= newState == s1;
 	            
-	            if (eqCx == 0) 
+	            if (dx == 0 && eqCx == 0) 
 	            {
 	              dx = curDx;
 	              eqCx = 1;
 	            }
-	            else if (Math.abs(dx - curDx) <= (isMovingOne? tolerance : tolerance)) 
+                else if (Math.abs(dx - curDx) <= (isMovingOne || (i == 1 && newStatePassed)? tolerance : 0)) 
 	            {
 	              eqCx += 1;
 	            }
-	        }
+	            else if (eqCx > 1 && newStatePassed) //stop and ignore the following cells
+            	{
+	              horizontalCells = horizontalCells.slice(0, i + 1);
+	              break;
+            	}
+	            else if (horizontalCells.length - i >= 3 && !newStatePassed) //reset and start counting again
+            	{
+	      	      eqCx = 0;
+	    	      dx = midDx != 0? midDx : 0;
+	    	      fixedDx = dx;
+	    	      horizontalCells.splice(0, i == 0? 1 : i);
+	    	      i = -1;
+            	}
+	            else
+            	{
+		          break;
+            	}
+
+	            if (fixedDx == 0 && !isMovingOne)
+	        	{
+	            	fixedDx = curDx;
+	            	//Update dx such that following cells shows equal distance guides without tolerance
+	            	dx = fixedDx;
+	        	}
+	  	  	}
+	        if (horizontalCells.length == 3 && horizontalCells[1] == newState) 
+        	{
+              fixedDx = 0;
+        	}
 	      }
 	      
 	      var createEqGuide = function(p1, p2, curGuide, isVer)
 	      {
 	        var points = [];
-	        var dx = 0.0;
-	        var dy = 0.0;
+	        var dx = 0
+	        var dy = 0;
 	        
 	        if (isVer) 
 	        {
@@ -181,7 +276,26 @@
 	          return guideEq;
 	        }
 	      };
-	
+
+	      var hideEqGuides = function(horizontal, vertical)
+	      {
+	    	  if (horizontal && guide.guidesArrHor != null) 
+	    	  {
+		    	  for (var i = 0; i < guide.guidesArrHor.length; i++)
+		          {
+		    		  guide.guidesArrHor[i].node.style.visibility = "hidden";
+		          }
+	    	  }
+	    	  
+	    	  if (vertical && guide.guidesArrVer != null)
+    		  {
+		    	  for (var i = 0; i < guide.guidesArrVer.length; i++) 
+		          {
+		    		  guide.guidesArrVer[i].node.style.visibility = "hidden";
+		          }
+    		  }
+	      };
+	      
 	      if (eqCx > 1 && eqCx == horizontalCells.length - 1) 
 	      {
 	        var guidesArr = [];
@@ -239,16 +353,21 @@
 	          guideEq.redraw();
 	          guidesArr.push(guideEq);
 	        }
+	        
+	        //destroy old non-recycled guides 
+	        for (var i = hPoints.length / 2; curArr != null && i < curArr.length; i ++)
+	        {
+	        	curArr[i].destroy();
+	        }
+	        
 	        guide.guidesArrHor = guidesArr;
 	        
 	        xShift = newX - bounds.x;
+	        hasHorGuides = true;
 	      }
-	      else if (guide.guidesArrHor != null) 
+	      else 
 	      {
-	    	  for (var i = 0; i < guide.guidesArrHor.length; i++) 
-	          {
-	    		  guide.guidesArrHor[i].node.style.visibility = "hidden";
-	          }
+	    	  hideEqGuides(true);
 	      }
 	      
 	      if (eqCy > 1 && eqCy == verticalCells.length - 1) 
@@ -299,7 +418,7 @@
 				vPoints.push(new mxPoint(firstX, s3.y - shift));
 			}
 	
-	        for (i = 0; i < vPoints.length; i += 2)
+	        for (var i = 0; i < vPoints.length; i += 2)
 	        {
 	          var p1 = vPoints[i];
 	          var p2 = vPoints[i+1];
@@ -308,21 +427,44 @@
 	          guideEq.redraw();
 	          guidesArr.push(guideEq);
 	        }
+
+	        //destroy old non-recycled guides 
+	        for (var i = vPoints.length / 2; curArr != null && i < curArr.length; i ++)
+	        {
+	        	curArr[i].destroy();
+	        }
 	        
 	        guide.guidesArrVer = guidesArr;
 	        
 	        yShift = newY - bounds.y;
+	        hasVerGuides = true;
 	      } 
-	      else if (guide.guidesArrVer != null)
+	      else
 	      {
-	    	  for (var i = 0; i < guide.guidesArrVer.length; i++) 
-	          {
-	    		  guide.guidesArrVer[i].node.style.visibility = "hidden";
-	          }
+	    	  hideEqGuides(false, true);
 	      }
 	    }
 	    
-		return guideMove.call(this, bounds, new mxPoint(xShift, yShift), gridEnabled);
+    	//TODO force other guides not to change the point!
+	    if (hasHorGuides || hasVerGuides)
+    	{
+	    	var eqPoint = new mxPoint(xShift, yShift);
+	    	guideMove.call(this, bounds, eqPoint, gridEnabled, clone);
+	    	
+	    	//if other guides changed the calculated point, hide the guides
+//	    	if ((hasHorGuides && newPoint.x != xShift) || (hasVerGuides && newPoint.y != yShift))
+//    		{
+//		    	hideEqGuides(true, true);
+//    		}
+//	    	return newPoint;
+	    	//Discard other guides modifications and return our point! Not the best (correct?) solution
+	    	return eqPoint;
+    	}
+	    else
+    	{
+	    	hideEqGuides(true, true);
+	    	return guideMove.apply(this, arguments);
+    	}
 	};
 	
 	var guideSetVisible = mxGuide.prototype.setVisible;
diff --git a/src/main/webapp/js/diagramly/DrawioFile.js b/src/main/webapp/js/diagramly/DrawioFile.js
index 0c0c99e65..f90d4c53c 100644
--- a/src/main/webapp/js/diagramly/DrawioFile.js
+++ b/src/main/webapp/js/diagramly/DrawioFile.js
@@ -25,27 +25,28 @@ DrawioFile = function(ui, data)
 mxUtils.extend(DrawioFile, mxEventSource);
 
 /**
- * Sets the delay for autosave in milliseconds. Default is 1500.
+ * Specifies the delay between the last change and the autosave.
  */
 DrawioFile.prototype.autosaveDelay = 1500;
 
 /**
- * Sets the delay for autosave in milliseconds. Default is 30000.
+ * Specifies the maximum delay before an autosave is forced even if the graph
+ * is being changed.
  */
 DrawioFile.prototype.maxAutosaveDelay = 30000;
 
 /**
- * Sets the delay for autosave in milliseconds. Default is 2000.
+ * Contains the thread for the next autosave.
  */
 DrawioFile.prototype.autosaveThread = null;
 
 /**
- * Sets the delay for autosave in milliseconds. Default is 500.
+ * Stores the timestamp for hte last autosave.
  */
 DrawioFile.prototype.lastAutosave = null;
 
 /**
- * Sets the delay for autosave in milliseconds. Default is 1500.
+ * Stores the modified state.
  */
 DrawioFile.prototype.modified = false;
 
@@ -297,40 +298,20 @@ DrawioFile.prototype.getData = function()
  */
 DrawioFile.prototype.open = function()
 {
-	this.ui.setFileData(this.getData());
+	var data = this.getData();
+	
+	if (data != null)
+	{
+		this.ui.setFileData(data);
+	}
 	
 	this.changeListener = mxUtils.bind(this, function(sender, eventObject)
 	{
 		var edit = (eventObject != null) ? eventObject.getProperty('edit') : null;
 		
-		if (this.changeListenerEnabled && this.isEditable() &&
-			(edit == null || !edit.ignoreEdit))
+		if (this.changeListenerEnabled && this.isEditable() && (edit == null || !edit.ignoreEdit))
 		{
-			this.setModified(true);
-			
-			if (this.isAutosave())
-			{
-				this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get('saving')) + '...');
-				
-				this.autosave(this.autosaveDelay, this.maxAutosaveDelay, mxUtils.bind(this, function(resp)
-				{
-					// Does not update status if another autosave was scheduled
-					if (this.autosaveThread == null && this.ui.getCurrentFile() == this && !this.isModified())
-					{
-						this.addAllSavedStatus();
-					}
-				}), mxUtils.bind(this, function(resp)
-				{
-					if (this.ui.getCurrentFile() == this)
-					{
-						this.addUnsavedStatus(resp);
-					}
-				}));
-			}
-			else
-			{
-				this.addUnsavedStatus();
-			}
+			this.fileChanged();
 		}
 	});
 	
@@ -360,22 +341,17 @@ DrawioFile.prototype.addAllSavedStatus = function()
 	
 	if (file != null && (file.constructor == DriveFile || file.constructor == DropboxFile))
 	{
-		
-		this.ui.editor.setStatus('<span title="'+ mxUtils.htmlEntities(mxResources.get('revisionHistory')) +
+		this.ui.editor.setStatus('<div title="'+ mxUtils.htmlEntities(mxResources.get('revisionHistory')) +
 			'" style="text-decoration:underline;cursor:pointer;">' +
-			mxUtils.htmlEntities(mxResources.get('allChangesSaved')) + '</span>');
+			mxUtils.htmlEntities(mxResources.get('allChangesSaved')) + '</div>');
+		var links = (this.ui.statusContainer != null) ? this.ui.statusContainer.getElementsByTagName('div') : null;
 		
-		if (this.ui.statusContainer != null)
+		if (links.length > 0)
 		{
-			var links = this.ui.statusContainer.getElementsByTagName('span');
-			
-			if (links.length > 0)
+			mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function()
 			{
-				mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function()
-				{
-					this.ui.actions.get('revisionHistory').funct();
-				}));
-			}
+				this.ui.actions.get('revisionHistory').funct();
+			}));
 		}
 	}
 	else
@@ -384,6 +360,38 @@ DrawioFile.prototype.addAllSavedStatus = function()
 	}
 };
 
+/**
+ * Adds the listener for automatically saving the diagram for local changes.
+ */
+DrawioFile.prototype.fileChanged = function()
+{
+	this.setModified(true);
+	
+	if (this.isAutosave())
+	{
+		this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get('saving')) + '...');
+		
+		this.autosave(this.autosaveDelay, this.maxAutosaveDelay, mxUtils.bind(this, function(resp)
+		{
+			// Does not update status if another autosave was scheduled
+			if (this.autosaveThread == null && this.ui.getCurrentFile() == this && !this.isModified())
+			{
+				this.addAllSavedStatus();
+			}
+		}), mxUtils.bind(this, function(resp)
+		{
+			if (this.ui.getCurrentFile() == this)
+			{
+				this.addUnsavedStatus(resp);
+			}
+		}));
+	}
+	else
+	{
+		this.addUnsavedStatus();
+	}
+};
+
 /**
  * Adds the listener for automatically saving the diagram for local changes.
  */
@@ -392,8 +400,8 @@ DrawioFile.prototype.addUnsavedStatus = function(err)
 	if (err instanceof Error && err.message != null)
 	{
 		this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">' +
-				mxUtils.htmlEntities(mxResources.get('unsavedChanges')) +
-				' (' + mxUtils.htmlEntities(err.message) + ')</div>');
+			mxUtils.htmlEntities(mxResources.get('unsavedChanges')) +
+			' (' + mxUtils.htmlEntities(err.message) + ')</div>');
 	}
 	else
 	{
@@ -415,17 +423,19 @@ DrawioFile.prototype.addUnsavedStatus = function(err)
 			mxUtils.htmlEntities(mxResources.get('unsavedChangesClickHereToSave')) + '</div>');
 		
 		// Installs click handler for saving
-		if (this.ui.statusContainer != null)
+		var links = (this.ui.statusContainer != null) ? this.ui.statusContainer.getElementsByTagName('div') : null;
+		
+		if (links != null && links.length > 0)
 		{
-			var links = this.ui.statusContainer.getElementsByTagName('div');
-			
-			if (links.length > 0)
+			mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function()
 			{
-				mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function()
-				{
-					this.ui.actions.get((this.ui.mode == null) ? 'saveAs' : 'save').funct();
-				}));
-			}
+				this.ui.actions.get((this.ui.mode == null) ? 'saveAs' : 'save').funct();
+			}));
+		}
+		else
+		{
+			this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">' +
+				mxUtils.htmlEntities(mxResources.get('unsavedChanges')) + '</div>');
 		}
 	}
 };
@@ -442,13 +452,17 @@ DrawioFile.prototype.autosave = function(delay, maxDelay, success, error)
 	
 	var tmp = (new Date().getTime() - this.lastAutosave < maxDelay) ? delay : 0;
 	this.clearAutosave();
-	
+
 	// Starts new timer or executes immediately if not unsaved for maxDelay
-	this.autosaveThread = window.setTimeout(mxUtils.bind(this, function()
+	var thread = window.setTimeout(mxUtils.bind(this, function()
 	{
-		this.autosaveThread = null;
 		this.lastAutosave = null;
 		
+		if (this.autosaveThead == thread)
+		{
+			this.autosaveThread = null;
+		}
+		
 		// Workaround for duplicate save if UI is blocking
 		// after save while pending autosave triggers
 		if (this.isModified() && this.isAutosaveNow())
@@ -478,12 +492,19 @@ DrawioFile.prototype.autosave = function(delay, maxDelay, success, error)
 		}
 		else
 		{
+			if (!this.isModified())
+			{
+				this.ui.editor.setStatus('');
+			}
+			
 			if (success != null)
 			{
 				success(null);
 			}
 		}
 	}), tmp);
+	
+	this.autosaveThread = thread;
 };
 
 /**
diff --git a/src/main/webapp/js/diagramly/DriveClient.js b/src/main/webapp/js/diagramly/DriveClient.js
index e4f53968f..2aa09c314 100644
--- a/src/main/webapp/js/diagramly/DriveClient.js
+++ b/src/main/webapp/js/diagramly/DriveClient.js
@@ -10,6 +10,9 @@ DriveClient = function(editorUi)
 	 * Holds a reference to the UI. Needed for the sharing client.
 	 */
 	this.ui = editorUi;
+	
+	// New mime type for XML files
+	this.xmlMimeType = 'application/vnd.jgraph.mxfile';
 
 	if (this.ui.editor.isChromelessView() && urlParams['rt'] != '1')
 	{
@@ -37,9 +40,8 @@ DriveClient = function(editorUi)
 		this.mimeType = 'application/vnd.jgraph.mxfile.rtlegacy';
 	}
 	
-	this.mimeTypes = 'application/mxe,application/vnd.jgraph.mxfile,' +
-		'application/mxr,application/vnd.jgraph.mxfile.realtime,' +
-		'application/vnd.jgraph.mxfile.rtlegacy';
+	this.mimeTypes = this.xmlMimeType + 'application/mxe,application/mxr,' +
+		'application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy';
 };
 
 // Extends mxEventSource
@@ -58,6 +60,12 @@ DriveClient.prototype.scopes = (urlParams['photos'] == '1') ?
                                 'https://www.googleapis.com/auth/drive.install',
                                 'https://www.googleapis.com/auth/userinfo.profile'];
 
+/**
+ * Contains the hostname of the old app.
+ */
+DriveClient.prototype.allFields = 'kind,id,parents,headRevisionId,etag,title,mimeType,modifiedDate,' +
+	'editable,copyable,labels,properties,downloadUrl,webContentLink,userPermission';
+
 /**
  * Specifies if thumbnails should be enabled. Default is true.
  * LATER: If thumbnails are disabled, make sure to replace the
@@ -377,7 +385,8 @@ DriveClient.prototype.executeRequest = function(req, success, error)
 					// Schedules a retry if no new request was executed
 					// TODO: Check for 'rateLimitExceeded', 'userRateLimitExceeded' in errors
 					// see https://developers.google.com/drive/handle-errors
-					else if (resp != null && resp.error != null && resp.error.code != 404 && this.currentRequest == req && retryCount < this.maxRetries)
+					else if (resp != null && resp.error != null && resp.error.code != 412 && resp.error.code != 404 &&
+							this.currentRequest == req && retryCount < this.maxRetries)
 					{
 						retryCount++;
 						var jitter = 1 + 0.1 * (Math.random() - 0.5);
@@ -561,8 +570,9 @@ DriveClient.prototype.copyFile = function(id, title, success, error)
 {
 	if (id != null && title != null)
 	{
-		this.executeRequest(gapi.client.drive.files.copy({'fileId': id, 'resource':
-			{'title' : title}, 'supportsTeamDrives': true}), success, error);
+		this.executeRequest(gapi.client.drive.files.copy({'fileId': id,
+			'fields': this.allFields, 'supportsTeamDrives': true,
+			'resource': {'title' : title}}), success, error);
 	}
 };
 
@@ -576,7 +586,8 @@ DriveClient.prototype.renameFile = function(id, title, success, error)
 {
 	if (id != null && title != null)
 	{
-		this.executeRequest(this.createDriveRequest(id, {'title' : title}), success, error);
+		this.executeRequest(this.createDriveRequest(
+			id, {'title' : title}), success, error);
 	}
 };
 
@@ -620,6 +631,40 @@ DriveClient.prototype.getLibrary = function(id, success, error)
 	return this.getFile(id, success, error, true, true);
 };
 
+/**
+ * Loads the descriptorf for the given file ID.
+ */
+DriveClient.prototype.loadDescriptor = function(id, success, error)
+{
+	this.executeRequest(gapi.client.drive.files.get({'fileId': id,
+		'fields': this.allFields, 'supportsTeamDrives': true}),
+		success, error);
+};
+
+/**
+ * Gets the channel ID from the given descriptor.
+ */
+DriveClient.prototype.getChannelId = function(desc)
+{
+	var props = desc.properties;
+	var result = null;
+	
+	if (props != null)
+	{
+		for (var i = 0; i < props.length; i++)
+		{
+			if (props[i].key == 'channel')
+			{
+				result = props[i].value;
+				
+				break;
+			}
+		}
+	}
+	
+	return result;
+};
+
 /**
  * Checks if the client is authorized and calls the next step. The optional
  * readXml argument is used for import. Default is false. The optional
@@ -632,14 +677,16 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar
 	
 	if (urlParams['rev'] != null)
 	{
-		this.executeRequest(gapi.client.drive.revisions.get({'fileId': id, 'revisionId': urlParams['rev']}), mxUtils.bind(this, function(resp)
-		{
-   			this.getXmlFile(resp, null, success, error);
-		}), error);
+		this.executeRequest(gapi.client.drive.revisions.get({'fileId': id,
+			'revisionId': urlParams['rev'], 'supportsTeamDrives': true}),
+			mxUtils.bind(this, function(resp)
+			{
+   				this.getXmlFile(resp, null, success, error);
+			}), error);
 	}
 	else
 	{
-		this.executeRequest(gapi.client.drive.files.get({'fileId': id, 'supportsTeamDrives': true}), mxUtils.bind(this, function(resp)
+		this.loadDescriptor(id, mxUtils.bind(this, function(resp)
 		{
 			if (this.user != null)
 			{
@@ -654,20 +701,39 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar
 				}
 				else
 				{
-					if (readXml || readLibrary || resp.mimeType == this.libraryMimeType)
+					// Handles converted realtime files as XML files
+					if (readXml || readLibrary || resp.mimeType == this.libraryMimeType ||
+						resp.mimeType == this.xmlMimeType)
 					{
 						this.getXmlFile(resp, null, success, error, true, readLibrary);
 					}
 					else
 					{
-						this.loadRealtime(resp, mxUtils.bind(this, function(doc)
-					    {
-							try
+						if (!App.GOOGLE_REALTIME)
+						{
+							if (this.isGoogleRealtimeMimeType(resp.mimeType))
 							{
-								// Converts XML files to realtime including old realtime model
-								if (doc == null || doc.getModel() == null || doc.getModel().getRoot() == null ||
-									doc.getModel().getRoot().isEmpty() || (doc.getModel().getRoot().has('cells') &&
-									!doc.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey)))
+								this.convertRealtimeFile(resp, mxUtils.bind(this, function(file)
+								{
+									this.notifyRealtimeConverted(file);
+									success(file);
+								}), error);
+							}
+							else
+							{
+								this.getXmlFile(resp, null, success, error);
+							}
+						}
+						else
+						{
+							this.loadRealtime(resp, mxUtils.bind(this, function(doc)
+						    {
+								try
+								{
+									// Converts XML files to realtime including old realtime model
+									if (doc == null || doc.getModel() == null || doc.getModel().getRoot() == null ||
+										doc.getModel().getRoot().isEmpty() || (doc.getModel().getRoot().has('cells') &&
+										!doc.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey)))
 						    		{
 						    			this.getXmlFile(resp, doc, success, error);
 						    		}
@@ -676,12 +742,13 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar
 						        		// XML not required here since the realtime model is not empty
 						    			success(new DriveFile(this.ui, null, resp, doc));
 						    		}
-							}
-							catch (e)
-							{
-								error(e);
-							}
-					    }), error);
+								}
+								catch (e)
+								{
+									error(e);
+								}
+						    }), error);
+					    }
 					}
 				}
 			}
@@ -693,6 +760,50 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar
 	}
 };
 
+/**
+ * Returns true if the given mime type is for Google Realtime files.
+ */
+DriveClient.prototype.isGoogleRealtimeMimeType = function(mimeType)
+{
+	return mimeType != null && mimeType.substring(0, 30) == 'application/vnd.jgraph.mxfile.';
+};
+
+/**
+ * Checks if the client is authorized and calls the next step.
+ */
+DriveClient.prototype.getRealtimeData = function(id, success, error, retryCount)
+{
+	this.executeRequest(gapi.client.drive.realtime.get({'fileId': id,
+		'supportsTeamDrives': true}), mxUtils.bind(this, function(resp)
+	{
+		var json = (resp.result != null) ? resp.result.data : null;
+		
+		if (json != null && json.value != null && json.value.diagrams != null)
+		{
+			success(json);
+		}
+		else if (error != null)
+		{
+			error();
+		}
+	}), mxUtils.bind(this, function(resp)
+	{
+		if (retryCount == null)
+		{
+			retryCount = 0;
+		}
+		
+		if (retryCount < 3)
+		{
+			this.getRealtimeData(id, success, error, retryCount + 1);
+		}
+		else if (error != null)
+		{
+			error();
+		}
+	}));
+};
+
 /**
  * Checks if the client is authorized and calls the next step.
  */
@@ -707,7 +818,7 @@ DriveClient.prototype.loadRealtime = function(resp, success, error)
 	}
 	// Checks if we're in viewer app or if the file is writeable if it needs to be converted
 	else if (this.appId != '850530949725' && (resp.editable || (resp.mimeType != 'application/mxe' &&
-		resp.mimeType != 'application/vnd.jgraph.mxfile')))
+		resp.mimeType != 'application/vnd.jgraph.mxfile')) && gapi.drive.realtime != null)
 	{
 		var fn = mxUtils.bind(this, function()
 		{
@@ -792,7 +903,8 @@ DriveClient.prototype.getXmlFile = function(resp, doc, success, error, ignoreMim
 			var file = new DriveFile(this.ui, data, resp, doc);
 	
 			// Checks if mime-type needs to be updated if the file is editable and no viewer app
-			if (!ignoreMime && this.appId != '850530949725' && file.isEditable() && resp.mimeType != this.mimeType)
+			if (App.GOOGLE_REALTIME && !ignoreMime && this.appId != '850530949725' && file.isEditable() &&
+				resp.mimeType != this.mimeType)
 			{
 				// Overwrites mime-type (only mutable on update when uploading new content)
 				this.saveFile(file, true, mxUtils.bind(this, function(resp)
@@ -816,7 +928,7 @@ DriveClient.prototype.getXmlFile = function(resp, doc, success, error, ignoreMim
  * @param {number} dx X-coordinate of the translation.
  * @param {number} dy Y-coordinate of the translation.
  */
-DriveClient.prototype.saveFile = function(file, revision, success, error, noCheck, unloading)
+DriveClient.prototype.saveFile = function(file, revision, success, error, noCheck, unloading, overwrite, properties)
 {
 	if (file.isEditable())
 	{
@@ -839,10 +951,29 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec
 		{
 			var meta =
 			{
-				'mimeType': (file.constructor == DriveLibrary) ? this.libraryMimeType : this.mimeType,
+				'mimeType': file.desc.mimeType,
 				'title': file.getTitle()
 			};
 			
+			// Overrides old mime type and creates a revision
+			if (!App.GOOGLE_REALTIME && file.realtime == null &&
+				this.isGoogleRealtimeMimeType(file.desc.mimeType))
+			{
+				meta.mimeType = this.xmlMimeType;
+				revision = true;
+			}
+			
+			// Inserts a channel ID
+			if (file.constructor == DriveFile && this.getChannelId(file.desc) == null)
+			{
+				if (properties == null)
+				{
+					properties = [];
+				}
+				
+				properties.push({'key': 'channel', 'value': Editor.guid()});
+			}
+			
 			// Specifies that no thumbnail should be uploaded in which case the existing thumbnail is used
 			if (!keepExisting)
 			{
@@ -869,15 +1000,24 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec
 			// Updates saveDelay on drive file
 			var wrapper = function()
 			{
-		    		file.saveDelay = new Date().getTime() - t0;
-		    		success.apply(this, arguments);
+		    	file.saveDelay = new Date().getTime() - t0;
+		    	success.apply(this, arguments);
 			};
 			
 			var fn = mxUtils.bind(this, function(data, binary)
 			{
+				if (properties != null)
+				{
+					meta.properties = properties;
+				}
+				
+				// Used to check if file was changed externally
+				var etag = (!overwrite && file.constructor == DriveFile &&
+					file.realtime == null) ? file.desc.etag : null;
+				
 				this.executeRequest(this.createUploadRequest(file.getId(), meta,
 					data, revision || (file.desc.mimeType != this.mimeType &&
-					file.desc.mimeType != this.libraryMimeType), binary),
+					file.desc.mimeType != this.libraryMimeType), binary, etag),
 					wrapper, error);
 			});
 			
@@ -900,37 +1040,38 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec
 		{
 			// NOTE: getThumbnail is asynchronous and returns false if no thumbnails can be created
 			if (unloading || file.constructor == DriveLibrary || !this.enableThumbnails || urlParams['thumb'] == '0' ||
-				(file.realtime != null && !file.realtime.connected) || !this.ui.getThumbnail(this.thumbnailWidth, mxUtils.bind(this, function(canvas)
-			{
-				// Callback for getThumbnail
-				var thumb = null;
-				
-				if (canvas != null)
+				(file.realtime != null && !file.realtime.connected) || !this.ui.getThumbnail(this.thumbnailWidth,
+				mxUtils.bind(this, function(canvas)
 				{
-					try
+					// Callback for getThumbnail
+					var thumb = null;
+					
+					if (canvas != null)
 					{
-						// Security errors are possible
-						thumb = canvas.toDataURL('image/png');
+						try
+						{
+							// Security errors are possible
+							thumb = canvas.toDataURL('image/png');
+						}
+						catch (e)
+						{
+							// ignore and continue with placeholder
+						}
 					}
-					catch (e)
+					
+					// Maximum thumbnail size is 2MB
+					if (thumb == null || thumb.length > this.maxThumbnailSize)
 					{
-						// ignore and continue with placeholder
+						thumb = null;
 					}
-				}
-				
-				// Maximum thumbnail size is 2MB
-				if (thumb == null || thumb.length > this.maxThumbnailSize)
-				{
-					thumb = null;
-				}
-				else
-				{
-					// Converts base64 data into required format for Drive (base64url with no prefix)
-					thumb = thumb.substring(thumb.indexOf(',') + 1).replace(/\+/g, '-').replace(/\//g, '_');
-				}
-				
-				doSave(thumb, 'image/png');
-			})))
+					else
+					{
+						// Converts base64 data into required format for Drive (base64url with no prefix)
+						thumb = thumb.substring(thumb.indexOf(',') + 1).replace(/\+/g, '-').replace(/\//g, '_');
+					}
+					
+					doSave(thumb, 'image/png');
+				})))
 			{
 				// If-branch
 				doSave(null, null, file.constructor != DriveLibrary && (file.realtime == null || file.realtime.connected));
@@ -963,6 +1104,39 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec
 	}
 };
 
+/**
+ * Sends a message to all collaborators and stores the head revision ID.
+ */
+DriveClient.prototype.notifyRealtimeConverted = function(file)
+{
+	try
+	{
+		if (gapi.drive.realtime != null)
+		{
+			gapi.drive.realtime.load(file.getId(), mxUtils.bind(this, function(doc)
+			{
+				try
+				{
+					if (doc != null && doc.getModel() != null &&
+						doc.getModel().getRoot() != null)
+					{
+						doc.getModel().getRoot().set('realtimeConverted',
+							file.desc.headRevisionId);
+					}
+				}
+				catch (e)
+				{
+					// ignore
+				}
+			}));
+		}
+	}
+	catch (e)
+	{
+		// ignore
+	}
+};
+
 /**
  * Verifies the mime type of the given file ID.
  */
@@ -1049,7 +1223,7 @@ DriveClient.prototype.redirectToNewApp = function(error, fileId)
  */
 DriveClient.prototype.insertFile = function(title, data, folderId, success, error, mimeType, binary, allowRealtime)
 {
-	mimeType = (mimeType != null) ? mimeType : this.mimeType;
+	mimeType = (mimeType != null) ? mimeType : ((App.GOOGLE_REALTIME) ? this.mimeType : this.xmlMimeType);
 	allowRealtime = (allowRealtime != null) ? allowRealtime : true;
 	
 	var metadata =
@@ -1062,7 +1236,7 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro
 	{
 		metadata.parents = [{'kind': 'drive#fileLink', 'id': folderId}];
 	}
-
+	
 	// NOTE: Cannot create thumbnail on insert since no ui has no current file
 	this.executeRequest(this.createUploadRequest(null, metadata, data, false, binary), mxUtils.bind(this, function(resp)
 	{
@@ -1077,10 +1251,11 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro
 				error({message: mxResources.get('errorSavingFile')});
 			}
 		}
-		else if (allowRealtime)
+		else if (App.GOOGLE_REALTIME && allowRealtime &&
+			this.isGoogleRealtimeMimeType(resp.mimeType))
 		{
 			this.loadRealtime(resp, mxUtils.bind(this, function(doc)
-		    	{
+		    {
 				if (this.user != null)
 				{
 					var file = new DriveFile(this.ui, data, resp, doc);
@@ -1094,11 +1269,11 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro
 				{
 					error({message: mxResources.get('loggedOut')});
 				}
-		    	}), error);
+		    }), error, false);
 		}
 		else
 		{
-			success(resp);
+			success(new DriveFile(this.ui, data, resp));
 		}
 	}), error);
 };
@@ -1109,20 +1284,27 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro
  * @param {number} dx X-coordinate of the translation.
  * @param {number} dy Y-coordinate of the translation.
  */
-DriveClient.prototype.createUploadRequest = function(id, metadata, data, revision, binary)
+DriveClient.prototype.createUploadRequest = function(id, metadata, data, revision, binary, etag)
 {
 	binary = (binary != null) ? binary : false;
 	var bd = '-------314159265358979323846';
 	var delim = '\r\n--' + bd + '\r\n';
 	var close = '\r\n--' + bd + '--';
 	var ctype = 'application/octect-stream';
+	
+	var headers = {'Content-Type' : 'multipart/mixed; boundary="' + bd + '"'};
+	
+	if (etag != null)
+	{
+		headers['If-Match'] = etag;
+	}
 
 	var reqObj = 
 	{
 		'path': '/upload/drive/v2/files' + (id != null ? '/' + id : ''),
 		'method': (id != null) ? 'PUT' : 'POST',
 		'params': {'uploadType': 'multipart'},
-		'headers': {'Content-Type' : 'multipart/mixed; boundary="' + bd + '"'},
+		'headers': headers,
 		'body' : delim + 'Content-Type: application/json\r\n\r\n' + JSON.stringify(metadata) + delim +
 			'Content-Type: ' + ctype + '\r\n' + 'Content-Transfer-Encoding: base64\r\n' + '\r\n' +
 			((data != null) ? (binary) ? data : Base64.encode(data) : '') + close
@@ -1134,6 +1316,7 @@ DriveClient.prototype.createUploadRequest = function(id, metadata, data, revisio
 	}
 	
 	reqObj.params['supportsTeamDrives'] = true;
+	reqObj.params['fields'] = this.allFields;
 	
 	return gapi.client.request(reqObj);
 };
@@ -1397,7 +1580,7 @@ DriveClient.prototype.pickLibrary = function(fn)
 				}
 			});
 			
-			// Reuses picker as long as token doesn't change.
+			// Reuses picker as long as token doesn't change
 			var token = gapi.auth.getToken().access_token;
 			
 			if (this.libraryPicker == null || this.libraryPickerToken != token)
@@ -1477,3 +1660,255 @@ DriveClient.prototype.showPermissions = function(id)
 		shareClient.showSettingsDialog();
 	}));
 };
+
+/**
+ * Converts the given file from realtime to XML.
+ */
+DriveClient.prototype.getRealtimeAge = function(desc, json)
+{
+	var mod = (json != null && json.value != null && json.value.modifiedDate != null) ?
+		json.value.modifiedDate.json : null;
+	var result = 0;
+	
+	if (mod != null && mod > 0)
+	{
+		var ts = new Date(desc.modifiedDate);
+		var rt = new Date(mod);
+		result = ts.getTime() - rt.getTime();
+	}
+	
+	return result;
+};
+
+/**
+ * Converts the given file from realtime to XML.
+ */
+DriveClient.prototype.convertRealtimeFile = function(desc, success, error)
+{
+	this.getRealtimeData(desc.id, mxUtils.bind(this, function(json)
+	{
+		var age = this.getRealtimeAge(desc, json);
+		
+		// Uses the newer of the two
+		if (age < 0)
+		{
+			var node = this.convertJsonToXml(json);
+			console.log('converted realtime model', age, json, node);
+			success(new DriveFile(this.ui, mxUtils.getXml(node), desc));
+		}
+		else
+		{
+			console.log('using newer XML file', age, json);
+			this.getXmlFile(desc, null, success, error);
+		}
+	}), mxUtils.bind(this, function()
+	{
+		console.log('no realtime data, using XML file');
+		this.getXmlFile(desc, null, success, error);
+	}));
+};
+
+/**
+ * Returns the location as a new object.
+ */
+DriveClient.prototype.convertJsonToXml = function(json, uncompressed)
+{
+	if (json.value == null || json.value.diagrams == null)
+	{
+		throw Error('Invalid JSON: no diagrams in root map');
+	}
+	else
+	{
+		var node = mxUtils.createXmlDocument().createElement('mxfile');
+		var diagrams = json.value.diagrams.value;
+		
+		for (var i = 0; i < diagrams.length; i++)
+		{
+			try
+			{
+				var diagramNode = this.decodeJsonPage(diagrams[i].value,
+					node.ownerDocument.createElement('diagram'),
+					uncompressed);
+
+				//if (diagramNode.getAttribute('name') == null)
+				//{
+					// TODO: Should only use when converting but not when comparing
+					//diagramNode.setAttribute('name', mxResources.get('pageWithNumber', [i + 1]));
+				//}
+
+				node.appendChild(diagramNode);
+			}
+			catch (e)
+			{
+				throw Error('Error on page ' + i + ': ' + e.stack);
+			}
+		}
+		
+		//console.log('leaving convertJson', mxUtils.getPrettyXml(node));
+		
+		return node;
+	}
+};
+
+/**
+ * Returns true if copy, export and print are not allowed for this file.
+ */
+DriveClient.prototype.decodeJsonPage = function(json, node, uncompressed)
+{
+	if (json == null)
+	{
+		throw Error('Invalid JSON: json for page is null');
+	}
+	else
+	{
+		var codec = new mxCodec();
+		var root = this.createJsonCell(json.root, codec);
+		
+		if (root == null)
+		{
+			throw Error('Invalid JSON: no root cell for page');
+		}
+		else
+		{
+			// Dummy model for encoding
+			var modelNode = codec.encode(new mxGraphModel(root));
+			this.decodeJsonViewState(json, modelNode);
+			
+			if (uncompressed)
+			{
+				node.appendChild(modelNode);
+			}
+			else
+			{
+				mxUtils.setTextContent(node, this.ui.editor.graph.compressNode(modelNode));
+			}
+	
+			// Adds attributes to diagram node
+			if (json.id != null)
+			{
+				node.setAttribute('id', json.id.json);
+			}
+			else
+			{
+				// Workaround for missing page ID in JSON
+				this.node.setAttribute('id', Editor.guid());
+			}
+		
+			if (json.name != null)
+			{
+				node.setAttribute('name', json.name.json);
+			}
+		}
+	}
+	
+	//console.log('decoded json page', json, node);
+	
+	return node;
+};
+
+/**
+ * Writes the view state to the given node.
+ */
+DriveClient.prototype.decodeJsonViewState = function(json, node)
+{
+	// Page format is stored as "width,height"
+	var pf = (json.pageFormat != null) ? json.pageFormat.json : null;
+	
+	if (pf != null && pf.length > 0)
+	{
+		var values = pf.split(',');
+		
+		if (values.length > 1)
+		{
+			node.setAttribute('pageWidth', values[0]);
+			node.setAttribute('pageHeight', values[1]);
+		}
+	}
+
+	var bg = (json.backgroundColor != null) ? json.backgroundColor.json : null;
+	
+	if (bg != null && bg.length > 0)
+	{
+		node.setAttribute('background', bg);
+	}
+	
+	var img = (json.backgroundImage != null) ? json.backgroundImage.json : null;
+	
+	if (img != null && img.length > 0)
+	{
+		node.setAttribute('backgroundImage', img);
+	}
+	
+	node.setAttribute('fold', (json.foldingEnabled != null) ? json.foldingEnabled.json : '0');
+	node.setAttribute('pageScale', (json.pageScale != null) ? json.pageScale.json : mxGraph.prototype.pageScale);
+	node.setAttribute('math', (json.mathEnabled != null) ? json.mathEnabled.json : '0');
+	node.setAttribute('shadow', (json.shadowVisible != null) ? json.shadowVisible.json : '0');
+
+	return node;
+};
+
+/**
+ * Syncs initial state from collab model to graph model.
+ */
+DriveClient.prototype.createJsonCell = function(json, codec)
+{
+	if (json != null && json.id != null)
+	{
+		var val = json.value;
+		var cell = this.jsonToCell(val, codec);
+		codec.putObject(json.id, cell);
+		
+		cell.source = (val.source != null) ? this.createJsonCell(val.source, codec) : null;
+		cell.target = (val.target != null) ? this.createJsonCell(val.target, codec) : null;
+		
+		// Cells can be serialized as parents of terminals
+		this.createJsonCell(val.parent, codec)
+
+		for (var i = 0; i < val.children.value.length; i++)
+		{
+			var child = this.createJsonCell(val.children.value[i], codec);
+			
+			if (child != null)
+			{
+				cell.insert(child);
+			}
+			else
+			{
+				throw Error('Invalid JSON: no child ' + i + ' for cell ' + json.id);
+			}
+		}
+
+		return cell;
+	}
+	else if (json != null && json.ref != null)
+	{
+		return codec.objects[json.ref];
+	}
+	else
+	{
+		return null;
+	}
+};
+
+/**
+ * Adds the listener for automatically saving the diagram for local changes.
+ */
+DriveClient.prototype.jsonToCell = function(val, codec)
+{
+	var cell = new mxCell();
+	
+	cell.id = val.cellId.json;
+	cell.vertex = val.type.json == 'vertex';
+	cell.edge = val.type.json == 'edge';
+	cell.connectable = val.connectable.json != '0';
+	cell.collapsed = val.collapsed.json == '1';
+	cell.visible = val.visible.json != '0';
+	cell.style = (val.style != null) ? val.style.json : null;
+	cell.value = (val.xmlValue != null) ?
+		mxUtils.parseXml(val.xmlValue.json).documentElement :
+		((val.value != null) ? val.value.json : null);
+	cell.geometry = (val.geometry != null) ?
+		codec.decode(mxUtils.parseXml(val.geometry.json).documentElement) : null;
+		
+	return cell;
+};
diff --git a/src/main/webapp/js/diagramly/DriveFile.js b/src/main/webapp/js/diagramly/DriveFile.js
index 96411ee6e..99b39b2cc 100644
--- a/src/main/webapp/js/diagramly/DriveFile.js
+++ b/src/main/webapp/js/diagramly/DriveFile.js
@@ -17,6 +17,11 @@ DriveFile = function(ui, data, desc, doc)
 //Extends mxEventSource
 mxUtils.extend(DriveFile, DrawioFile);
 
+/**
+ * Delay for last save in ms.
+ */
+DriveFile.prototype.saveDelay = 0;
+
 /**
  * Returns true if copy, export and print are not allowed for this file.
  */
@@ -27,9 +32,12 @@ DriveFile.prototype.isRestricted = function()
 };
 
 /**
- * Delay for last save in ms.
+ * Adds the listener for automatically saving the diagram for local changes.
  */
-DriveFile.prototype.saveDelay = 0;
+DriveFile.prototype.isConflict = function(err)
+{
+	return err != null && err.error != null && err.error.code == 412;
+};
 
 /**
  * Translates this point by the given vector.
@@ -87,7 +95,7 @@ DriveFile.prototype.isAutosaveOptional = function()
  */
 DriveFile.prototype.isAutosave = function()
 {
-	return this.ui.editor.autosave || this.isAutosaveRevision();
+	return this.ui.editor.autosave || (this.realtime != null && this.isAutosaveRevision());
 };
 
 /**
@@ -103,8 +111,10 @@ DriveFile.prototype.isAutosaveNow = function()
 
 		return isNaN(backup) || isNaN(modified) || backup < modified;
 	}
-	
-	return true;
+	else
+	{
+		return true;
+	}
 };
 
 /**
@@ -146,11 +156,11 @@ DriveFile.prototype.isMovable = function()
  * @param {number} dx X-coordinate of the translation.
  * @param {number} dy Y-coordinate of the translation.
  */
-DriveFile.prototype.save = function(revision, success, error, unloading)
+DriveFile.prototype.save = function(revision, success, error, unloading, overwrite)
 {
 	DrawioFile.prototype.save.apply(this, arguments);
 	
-	this.saveFile(null, revision, success, error, unloading);
+	this.saveFile(null, revision, success, error, unloading, overwrite);
 };
 
 /**
@@ -159,7 +169,7 @@ DriveFile.prototype.save = function(revision, success, error, unloading)
  * @param {number} dx X-coordinate of the translation.
  * @param {number} dy Y-coordinate of the translation.
  */
-DriveFile.prototype.saveFile = function(title, revision, success, error, unloading)
+DriveFile.prototype.saveFile = function(title, revision, success, error, unloading, overwrite)
 {
 	if (!this.isEditable())
 	{
@@ -170,59 +180,119 @@ DriveFile.prototype.saveFile = function(title, revision, success, error, unloadi
 	}
 	else if (!this.savingFile)
 	{
-		this.savingFile = true;
-		
-		// Makes sure no changes get lost while the file is saved
 		var prevModified = this.isModified;
 		var modified = this.isModified();
+		
+		// Makes sure no changes get lost while the file is saved
 		this.setModified(false);
+
+		// Waits for success for modified state to be visible
+		this.isModified = function()
+		{
+			return true;
+		};
 		
-		this.ui.drive.saveFile(this, revision, mxUtils.bind(this, function(resp)
+		var doSave = mxUtils.bind(this, function(realOverwrite, realRevision)
 		{
-			this.savingFile = false;
-			this.isModified = prevModified;
+			this.savingFile = true;
 			
-			// Handles special case where resp is false eg
-			// if the old file was converted to realtime
-			if (resp != false)
+			this.ui.drive.saveFile(this, realRevision, mxUtils.bind(this, function(resp)
 			{
-				if (revision)
+				this.isModified = prevModified;
+				this.savingFile = false;
+				
+				// Handles special case where resp is false eg
+				// if the old file was converted to realtime
+				if (resp != false)
 				{
-					this.lastAutosaveRevision = new Date().getTime();
+					if (revision)
+					{
+						this.lastAutosaveRevision = new Date().getTime();
+					}
+					
+					this.desc = resp;
+					this.contentChanged();
+					
+					if (success != null)
+					{
+						success(resp);
+					}
 				}
-				
-				this.desc = resp;
-				this.contentChanged();
-				
-				if (success != null)
+				else
 				{
-					success(resp);
+					this.setModified(modified || this.isModified());
+					
+					if (error != null)
+					{
+						error(resp);
+					}
 				}
-			}
-			else
+			}), mxUtils.bind(this, function(err)
 			{
-				this.setModified(modified || this.isModified());
+				var doError = mxUtils.bind(this, function()
+				{
+					this.setModified(modified || this.isModified());
+					this.isModified = prevModified;
+					this.savingFile = false;
+					
+					if (error != null)
+					{
+						error(err);
+					}
+				});
 				
-				if (error != null)
+				if (this.isConflict(err))
 				{
-					error();
+					this.showConflictDialog(function()
+					{
+						// Overwrites and creates revision
+						doSave(true, true);
+					}, function()
+					{
+						err = null;
+						doError();
+					});
 				}
-			}
-		}), mxUtils.bind(this, function(resp)
+				else
+				{
+					doError();
+				}
+			}), unloading, unloading, realOverwrite);
+		});
+		
+		doSave(overwrite, revision);
+	}
+};
+
+/**
+ * Shows a conflict dialog to the user.
+ */
+DriveFile.prototype.makeCopy = function(success, error, timestamp)
+{
+	if (this.ui.spinner.spin(document.body, mxResources.get('saving')))
+	{
+		// Uses copyFile internally which is a remote REST call with the advantage of keeping
+		// the parents of the file in-place, but copies the remote file contents so needs to
+		// be updated as soon as we have the ID.
+		this.saveAs(this.ui.getCopyFilename(this, timestamp), mxUtils.bind(this, function(resp)
 		{
-			this.savingFile = false;
-			this.isModified = prevModified;
-			this.setModified(modified || this.isModified());
+			// Replaces the descriptor to and writes the file
+			this.ui.spinner.stop();
+			this.desc = resp;
+			success();
+			this.setModified(false);
+		}), mxUtils.bind(this, function()
+		{
+			this.ui.spinner.stop();
 			
 			if (error != null)
 			{
-				error(resp);
+				error();
 			}
-		}), unloading, unloading);
+		}));
 	}
 };
 
-
 /**
  * Translates this point by the given vector.
  * 
@@ -364,3 +434,324 @@ DriveFile.prototype.close = function(unloading)
 		this.realtime = null;
 	}
 };
+
+/**
+ * Shows a conflict dialog to the user.
+ */
+DriveFile.prototype.showConflictDialog = function(retry, error)
+{
+	if (!this.showingConflictDialog)
+	{
+		var resume = (this.ui.spinner != null && this.ui.spinner.pause != null) ?
+			this.ui.spinner.pause() : function() {};
+		var prev = this.changeListenerEnabled;
+		this.changeListenerEnabled = false;
+		this.showingConflictDialog = true;
+
+		this.ui.showError(mxResources.get('externalChanges'), mxResources.get('fileChangedOverwrite'),
+			mxResources.get('makeCopy'), mxUtils.bind(this, function()
+		{
+			this.showingConflictDialog = false;
+			this.changeListenerEnabled = prev;
+			this.makeCopy(retry, error, true);
+		}), null, mxResources.get('overwrite'), mxUtils.bind(this, function()
+		{
+			this.showingConflictDialog = false;
+			this.changeListenerEnabled = prev;
+			resume();
+			retry();
+		}), mxResources.get('cancel'), mxUtils.bind(this, function()
+		{
+			this.showingConflictDialog = false;
+			this.changeListenerEnabled = prev;
+			this.ui.hideDialog();
+			resume();
+			error();
+		}), 360, 180);
+		
+		// Adds important notice to dialog
+		if (this.ui.dialog != null && this.ui.dialog.container != null)
+		{
+			var alert = document.createElement('a');
+			alert.className = 'geStatusAlert';
+			alert.style.display = 'block';
+			alert.style.position = 'absolute';
+			alert.style.cursor = 'pointer';
+			alert.style.bottom = '0';
+			alert.style.padding = '8px 0 8px 0';
+			alert.style.marginBottom = '26px';
+			alert.style.left = '0';
+			alert.style.right = '0';
+			alert.style.textAlign = 'center';
+			alert.style.borderRadius = '0';
+			alert.style.borderLeftStyle = 'none';
+			alert.style.borderRightStyle = 'none';
+			alert.style.textDecoration = 'none';
+			alert.style.fontWeight = 'bold';
+			
+			alert.setAttribute('href', 'https://desk.draw.io/support/solutions/articles/16000087215');
+			alert.setAttribute('target', '_blank');
+			mxUtils.write(alert, mxResources.get('collaborativeEditingNotice'));
+			
+			this.ui.dialog.container.appendChild(alert);
+		}
+	}
+};
+
+/**
+ * Checks the conversion of the realtime model for this file.
+ */
+DriveFile.prototype.checkConvert = function()
+{
+	var doCheck = mxUtils.bind(this, function(json)
+	{
+		try
+		{
+			if (this.ui.getCurrentFile() == this && !this.isModified())
+			{
+				this.ui.drive.getXmlFile(this.desc, null, mxUtils.bind(this, function(file)
+				{
+					try
+					{
+						var data = file.getData();
+						var node = (data != null) ? mxUtils.parseXml(data).documentElement : null;
+						
+						if (node != null)
+						{
+							var tmp = this.ui.editor.extractGraphModel(node, true);
+							
+							if (tmp != null)
+							{
+								node = tmp;
+							}
+						}
+						
+						if (this.runCheck != null)
+						{
+							this.runCheck(json, node, data);
+						}
+					}
+					catch (e)
+					{
+						this.log('CATCH-PARSEFILE-' + e.stack);
+						this.runCheck(json, null, 'CATCH-PARSEFILE-' + e.stack);
+					}
+				}), mxUtils.bind(this, function(err)
+				{
+					this.log('ERROR-GETFILE');
+					this.runCheck(json, null, 'ERROR-GETFILE');
+				}), true);
+			}
+		}
+		catch (e)
+		{
+			this.log('CATCH-GETFILE-' + e.stack);
+			this.runCheck(json, null, 'CATCH-GETFILE-' + e.stack);
+		}
+	});
+	
+	try
+	{
+		this.ui.drive.getRealtimeData(this.desc.id, doCheck, doCheck);
+	}
+	catch (e)
+	{
+		this.log('CATCH-GETJSON-' + e.stack, true);
+	}
+};
+
+/**
+ * Removes all attributes that are irrelevant for structural diff.
+ */
+DriveFile.prototype.getComparableFile = function(node)
+{
+	// Removes all attributes from the mxfile
+	while (node.attributes.length > 0)
+	{
+		node.removeAttribute(node.attributes[0].name);
+	}
+
+	// Removes all diagram IDs since those can be missing in
+	// realtime but will be added on the fly
+	var diagrams = node.getElementsByTagName('diagram');
+	
+	for (var i = 0; i < diagrams.length; i++)
+	{
+		diagrams[i].removeAttribute('name');
+		diagrams[i].removeAttribute('id');
+
+		// Uncompress diagram data for structural comparison
+		var tmp = this.ui.editor.graph.decompress(mxUtils.getTextContent(diagrams[i]));
+		
+		if (tmp != null && tmp.length > 0)
+		{
+			while (diagrams[i].firstChild != null)
+			{
+				diagrams[i].removeChild(diagrams[i].firstChild);
+			}
+
+			diagrams[i].appendChild(mxUtils.parseXml(tmp).documentElement);
+		}
+	}
+	
+	// Some attributes have been initialized using different defaults
+	// in the UI compared to realtime so they must be ignored
+	var models = node.getElementsByTagName('mxGraphModel');
+	
+	for (var i = 0; i < models.length; i++)
+	{
+		while (models[i].attributes.length > 0)
+		{
+			models[i].removeAttribute(models[i].attributes[0].name);
+		}
+	}
+	
+	return node;
+};
+
+/**
+ * Removes all labels, user objects and styles from the given node.
+ */
+DriveFile.prototype.getAnonymizedXml = function(node)
+{
+	if (node != null)
+	{
+		var nodes = node.getElementsByTagName('mxCell');
+	
+		for (var i = 0; i < nodes.length; i++)
+		{
+			nodes[i].removeAttribute('style');
+			nodes[i].removeAttribute('value');
+			
+			if (nodes[i].parentNode != null && nodes[i].parentNode.nodeName == 'UserObject' &&
+				nodes[i].parentNode.parentNode != null)
+			{
+				nodes[i].parentNode.parentNode.replaceChild(nodes[i], nodes[i].parentNode);
+			}
+		}
+		
+		return mxUtils.getPrettyXml(node);;
+	}
+	else
+	{
+		return 'null';
+	}
+};
+
+/**
+ * Removes all labels, user objects and styles from the given JSON.
+ */
+DriveFile.prototype.getAnonymizedJson = function(json)
+{
+	if (json != null)
+	{
+		var diagrams = json.value.diagrams.value;
+		
+		for (var i = 0; i < diagrams.length; i++)
+		{
+			if (diagrams[i].value != null && diagrams[i].value.root != null)
+			{
+				this.anonymizeJsonCell(diagrams[i].value.root.value);
+			}
+		}
+		
+		return JSON.stringify(json);
+	}
+	else
+	{
+		return 'null';
+	}
+};
+
+/**
+ * Returns the location as a new object.
+ */
+DriveFile.prototype.anonymizeJsonCell = function(json)
+{
+	if (json != null)
+	{
+		delete json.xmlValue;
+		delete json.value;
+		delete json.style;
+		
+		if (json.children != null && json.children.value != null)
+		{
+			for (var i = 0; i < json.children.value.length; i++)
+			{
+				this.anonymizeJsonCell(json.children.value[i].value);
+			}
+		}
+	}
+};
+
+/**
+ * Debug output.
+ */
+DriveFile.prototype.debug = function()
+{
+	if (window.console != null && urlParams['test'] == '1')
+	{
+		console.log.apply(console, arguments);
+	}
+};
+
+/**
+ * Debug output.
+ */
+DriveFile.prototype.log = function(msg, sendReport)
+{
+	this.debug(msg);
+	
+	try
+	{
+		this.ui.logEvent({category: this.ui.JSON_CHECK, action: msg, label: this.desc.id});
+		
+		if (sendReport)
+		{
+			this.report('Realtime Log Report ' + new Date() +
+				'\n\nDescription: ' + JSON.stringify({version: this.ui.JSON_CHECK,
+					title: this.desc.title, editable: this.desc.editable,
+					copyable: this.desc.copyable, labels: this.desc.labels, id: this.desc.id,
+					userPermission: this.desc.userPermission, fileSize: this.desc.fileSize,
+					fileExtension: this.desc.fileExtension, modifiedDate: this.desc.modifiedDate,
+					mimeType: this.desc.mimeType}) +
+				'\n\nMessage:\n' + msg);
+		}
+	}
+	catch (e)
+	{
+		// ignore
+	}
+};
+
+/**
+ * Debug output.
+ */
+DriveFile.prototype.report = function(data)
+{
+	try
+	{
+		if (data.length > 3000000)
+		{
+			data = data.substring(0, 3000000) + '\n...[REPORT SHORTENED]'
+		}
+		
+		this.debug(data);
+		
+		mxUtils.post('/email', 'version=' + encodeURIComponent(EditorUi.VERSION) +
+			'&url=' + encodeURIComponent(window.location.href) +
+			'&data=' + encodeURIComponent(data),
+			mxUtils.bind(this, function(req)
+			{
+				this.debug('report sent');
+			}),
+			mxUtils.bind(this, function()
+			{
+				this.debug('report failed');
+			}));
+	}
+	catch (e)
+	{
+		// ignore
+	}
+};
diff --git a/src/main/webapp/js/diagramly/DriveRealtime.js b/src/main/webapp/js/diagramly/DriveRealtime.js
index 86e06067f..186511bd6 100644
--- a/src/main/webapp/js/diagramly/DriveRealtime.js
+++ b/src/main/webapp/js/diagramly/DriveRealtime.js
@@ -25,7 +25,7 @@ function DriveRealtime(file, doc)
 
 	this.ui.allowAnimation = false;
 	this.codec = new mxCodec();
-	
+
 	this.disconnectListener = mxUtils.bind(this, function()
 	{
 		// LATER: How to reload realtime document without refreshing the page
@@ -181,6 +181,20 @@ DriveRealtime.prototype.start = function()
 		this.log('reset realtime');
 	}
 
+	// Forces a refresh if realtime was disabled on the file
+	this.root.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED, mxUtils.bind(this, function(evt)
+	{
+		if (evt.property == 'realtimeConverted')
+		{
+			this.ui.showRefreshDialog();
+		}
+	}));
+	
+	if (this.root.has('realtimeConverted'))
+	{
+		this.ui.showRefreshDialog();
+	}
+
 	var prefix = this.createPrefix();
 	this.model.prefix = prefix + '-';
 	this.ui.editor.resetGraph();
@@ -265,9 +279,14 @@ DriveRealtime.prototype.start = function()
 			// Dummy node, should be XML node if used
 			this.page = new DiagramPage(document.createElement('diagram'));
 			this.page.mapping = new RealtimeMapping(this, this.diagramMap, this.page);
-			this.diagramMap.set('name', mxResources.get('pageWithNumber', [1]));
-			this.diagramMap.set('id', this.page.getId());
-			this.page.setName(this.diagramMap.get('name'));
+			
+			if (this.file.isEditable())
+			{
+				this.diagramMap.set('name', mxResources.get('pageWithNumber', [1]));
+				this.diagramMap.set('id', this.page.getId());
+			}
+			
+			this.page.setName(this.diagramMap.get('name') || mxResources.get('pageWithNumber', [1]));
 			this.page.mapping.init();
 		}
 		else
@@ -282,10 +301,17 @@ DriveRealtime.prototype.start = function()
 			page.mapping = new RealtimeMapping(this, diagramMap, page);
 			this.ui.currentPage = page;
 
-			if (this.file.isEditable() && !page.mapping.diagramMap.has('name'))
+			if (this.file.isEditable())
 			{
-				page.mapping.diagramMap.set('name', mxResources.get('pageWithNumber', [1]));
-				page.mapping.diagramMap.set('id', page.getId());
+				if (!page.mapping.diagramMap.has('name'))
+				{
+					page.mapping.diagramMap.set('name', mxResources.get('pageWithNumber', [1]));
+				}
+				
+				if (!page.mapping.diagramMap.has('id'))
+				{
+					page.mapping.diagramMap.set('id', page.getId());
+				}
 			}
 			
 			page.setName(page.mapping.diagramMap.get('name') || mxResources.get('pageWithNumber', [1]));
@@ -872,6 +898,7 @@ DriveRealtime.prototype.installPageSelectListener = function()
 			if (this.file.isEditable())
 			{
 				page.mapping.diagramMap.set('name', page.getName());
+				page.mapping.diagramMap.set('id', page.getId());
 			}
 		}
 	});
@@ -922,6 +949,12 @@ DriveRealtime.prototype.installPageSelectListener = function()
 					page.mapping = new RealtimeMapping(this, evt.values[i], page);
 					page.setName(page.mapping.diagramMap.get('name') || mxResources.get('pageWithNumber',
 						[this.ui.pages.length + 1]));
+					
+					if (page.mapping.diagramMap.has('id'))
+					{
+						page.node.setAttribute('id', page.mapping.diagramMap.get('id'));
+					}
+					
 					this.ui.pages.splice(evt.index + i, 0, page);
 					page.mapping.init();
 				}
diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js
index d893a9a46..e7468f929 100644
--- a/src/main/webapp/js/diagramly/Editor.js
+++ b/src/main/webapp/js/diagramly/Editor.js
@@ -120,6 +120,15 @@
         },
         {name: 'portConstraintRotation', dispName: 'Port Const. Rot.', type: 'bool', defVal: false},
         {name: 'snapToPoint', dispName: 'Snap to Point', type: 'bool', defVal: false},
+        {name: 'perimeter', dispName: 'Perimeter', defVal: 'none', type: 'enum',
+        	enumList: [{val: 'none', dispName: 'None'},
+        			{val: 'rectanglePerimeter', dispName: 'Rectangle'}, {val: 'ellipsePerimeter', dispName: 'Ellipse'},
+        			{val: 'rhombusPerimeter', dispName: 'Rhombus'}, {val: 'trianglePerimeter', dispName: 'Triangle'},
+        			{val: 'hexagonPerimeter2', dispName: 'Hexagon'}, {val: 'lifelinePerimeter', dispName: 'Lifeline'},
+        			{val: 'orthogonalPerimeter', dispName: 'Orthogonal'}, {val: 'backbonePerimeter', dispName: 'Backbone'},
+        			{val: 'calloutPerimeter', dispName: 'Callout'}, {val: 'parallelogramPerimeter', dispName: 'Parallelogram'},
+        			{val: 'trapezoidPerimeter', dispName: 'Trapezoid'}, {val: 'stepPerimeter', dispName: 'Step'}]
+        },
         {name: 'fixDash', dispName: 'Fixed Dash', type: 'bool', defVal: false},
         {name: 'autosize', dispName: 'Autosize', type: 'bool', defVal: false},
         {name: 'collapsible', dispName: 'Collapsible', type: 'bool', defVal: false},
@@ -2020,7 +2029,7 @@
 						input.value = pValue;
 						input.className = "gePropEditor";
 						
-						if (pType == "int" || pType == "float")
+						if ((pType == "int" || pType == "float") && !prop.allowAuto)
 						{
 							input.type = "number";
 							input.step = pType == "int"? "1" : "any";
@@ -2041,6 +2050,21 @@
 						function setInputVal()
 						{
 							var inputVal = input.value;
+							inputVal = inputVal.length == 0 && pType != "string"? 0 : inputVal;
+							
+							if (prop.allowAuto)
+							{
+								if (inputVal.trim().toLowerCase() == "auto")
+								{
+									inputVal = "auto";
+									pType = "string";
+								}
+								else
+								{
+									inputVal = parseFloat(inputVal);
+									inputVal = isNaN(inputVal)? 0 : inputVal;
+								}
+							}
 							
 							if (prop.min != null && inputVal < prop.min)
 							{
diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js
index 4d225de2e..ebebd1380 100644
--- a/src/main/webapp/js/diagramly/EditorUi.js
+++ b/src/main/webapp/js/diagramly/EditorUi.js
@@ -684,6 +684,7 @@
 				else
 				{
 					var diagramNode = node.ownerDocument.createElement('diagram');
+					diagramNode.setAttribute('id', Editor.guid());
 					mxUtils.setTextContent(diagramNode, data);
 					
 					fileNode = node.ownerDocument.createElement('mxfile');
@@ -773,9 +774,7 @@
 					
 						// Uses the graph state from the realtime model
 						mapping.writeRealtimeToNode(temp);					
-		
-						var data = this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(temp)));
-						mxUtils.setTextContent(this.pages[i].node, data);
+						mxUtils.setTextContent(this.pages[i].node, this.editor.graph.compressNode(temp));
 						
 						// Marks the page as up-to-date
 						mapping.needsUpdate = false;
@@ -1630,6 +1629,49 @@
 		return doc;
 	};
 	
+	/**
+	 * Constructs a filename for a copy of the given file.
+	 */
+	EditorUi.prototype.getCopyFilename = function(file, timestamp)
+	{
+		var title = (file != null && file.getTitle() != null) ?
+			file.getTitle() : this.defaultFilename;
+		
+		// Handles extension
+		var extension = '';
+		var dot = title.lastIndexOf('.');
+		
+		if (dot >= 0)
+		{
+			extension = title.substring(dot);
+			title = title.substring(0, dot);
+		}
+		
+		if (timestamp)
+		{
+			function getFormattedTime()
+			{
+			    var today = new Date();
+			    var y = today.getFullYear();
+			    // JavaScript months are 0-based.
+			    var m = today.getMonth() + 1;
+			    var d = today.getDate();
+			    var h = today.getHours();
+			    var mi = today.getMinutes();
+			    var s = today.getSeconds();
+			    
+			    return y + "-" + m + "-" + d + "-" + h + "-" + mi + "-" + s;
+			}
+			
+			var ts = new Date();
+			title += '-' + getFormattedTime();
+		}
+		
+		title = mxResources.get('copyOf', [title]) + extension;
+		
+		return title;
+	};
+	
 	/**
 	 * Translates this point by the given vector.
 	 * 
@@ -5820,6 +5862,7 @@
 								if (page.getName() == null)
 								{
 									page.setName(mxResources.get('pageWithNumber', [index + 1]));
+									page.needsUpdate = true;
 								}
 								
 								graph.model.execute(new ChangePage(this, page, page, index));
diff --git a/src/main/webapp/js/diagramly/GitHubClient.js b/src/main/webapp/js/diagramly/GitHubClient.js
index ad0c8d235..ea95d05be 100644
--- a/src/main/webapp/js/diagramly/GitHubClient.js
+++ b/src/main/webapp/js/diagramly/GitHubClient.js
@@ -629,7 +629,7 @@ GitHubClient.prototype.saveFile = function(file, success, error)
 				{
 					resume = this.ui.spinner.pause();
 					
-					var dlg = new ErrorDialog(this.ui, mxResources.get('errorSavingFile'),
+					var dlg = new ErrorDialog(this.ui, mxResources.get('externalChanges'),
 						mxResources.get('fileChangedOverwrite'), mxResources.get('cancel'), mxUtils.bind(this, function()
 						{
 							error();
diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js
index 02b30e8ee..9b8085f98 100644
--- a/src/main/webapp/js/diagramly/Menus.js
+++ b/src/main/webapp/js/diagramly/Menus.js
@@ -386,6 +386,27 @@
 		{
 			editorUi.actions.get('save').funct();
 		}, null, null, Editor.ctrlKey + '+S');
+		
+		editorUi.actions.addAction('refresh', function()
+		{
+			var currentFile = editorUi.getCurrentFile();
+			
+			function fn()
+			{
+				currentFile.setModified(false);
+				editorUi.loadFile(currentFile.getHash(), true);
+			};
+			
+			if (currentFile != null && currentFile.isModified())
+			{
+				editorUi.confirm(mxResources.get('allChangesLost'), null, fn,
+					mxResources.get('cancel'), mxResources.get('discardChanges'));
+			}
+			else
+			{
+				fn();
+			}
+		}, null, null, 'Alt+Shift+R');
 
 		editorUi.actions.addAction('upload...', function()
 		{
@@ -945,7 +966,9 @@
 					var b = graph.getGraphBounds();
 					var tr = graph.view.translate;
 					var s = graph.view.scale;
-					graph.insertVertex(parent, null, '', b.x / s - tr.x, b.y / s - tr.y, b.width / s, b.height / s, 'fillColor=none;strokeColor=red;');
+					graph.insertVertex(graph.getDefaultParent(), null, '',
+						b.x / s - tr.x, b.y / s - tr.y, b.width / s, b.height / s,
+						'fillColor=none;strokeColor=red;');
 				}));
 
 				mxResources.parse('createSidebarEntry=Create sidebar entry');
@@ -1830,20 +1853,8 @@
 			
 			if (file != null)
 			{
-				var title = (file.getTitle() != null) ? file.getTitle() : editorUi.defaultFilename;
-				
-				// Handles extension
-				var extension = '';
-				var dot = title.lastIndexOf('.');
-				
-				if (dot >= 0)
-				{
-					extension = title.substring(dot);
-					title = title.substring(0, dot);
-				}
-				
-				title = mxResources.get('copyOf', [title]) + extension;
-				
+				var title = editorUi.getCopyFilename(file);
+
 				if (file.constructor == DriveFile)
 				{
 					var dlg = new CreateDialog(editorUi, title, mxUtils.bind(this, function(newTitle, mode)
@@ -1860,18 +1871,18 @@
 							{
 								if (editorUi.spinner.spin(document.body, mxResources.get('saving')))
 								{
-									// Makes sure the latest XML is in the file
-									file.save(false, mxUtils.bind(this, function()
+									// Saveas does not update the file descriptor in Google Drive
+									file.saveAs(newTitle, mxUtils.bind(this, function(resp)
 									{
-										// Saveas does not update the file descriptor in Google Drive
-										file.saveAs(newTitle, mxUtils.bind(this, function(resp)
+										// Replaces file descriptor in-place and saves
+										file.desc = resp;
+										
+										// Makes sure the latest XML is in the file
+										file.save(false, mxUtils.bind(this, function()
 										{
 											editorUi.spinner.stop();
-											var url = editorUi.getUrl();
-											window.openWindow(url + '#G' + resp.id, null, mxUtils.bind(this, function()
-											{
-												window.location.hash = 'G' + resp.id;
-											}));
+											file.setModified(false);
+											file.addAllSavedStatus();
 										}), mxUtils.bind(this, function(resp)
 										{
 											editorUi.handleError(resp);
@@ -1884,7 +1895,7 @@
 							}
 							else
 							{
-								this.editorUi.createFile(newTitle, this.editorUi.getFileData(true), null, mode);
+								editorUi.createFile(newTitle, editorUi.getFileData(true), null, mode);
 							}
 						}
 					}), mxUtils.bind(this, function()
@@ -2648,7 +2659,7 @@
 					
 					if (file.realtime == null)
 					{
-						this.addMenuItems(menu, ['save', 'share', '-'], parent);
+						this.addMenuItems(menu, ['save', 'share', '-', 'refresh', '-'], parent);
 					}
 					else
 					{
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index d15897979..fd0faa470 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -694,9 +694,10 @@ EditorUi.initMinimalTheme = function()
 
         this.put('diagram', new Menu(mxUtils.bind(this, function(menu, parent)
         {
+			var file = ui.getCurrentFile();
         	ui.menus.addSubmenu('extras', menu, parent, mxResources.get('preferences'));
 			menu.addSeparator(parent);
-
+			
 			if (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp)
 			{
 				ui.menus.addMenuItems(menu, ['new', 'open', '-', 'save', 'saveAs', '-'], parent);
@@ -721,17 +722,19 @@ EditorUi.initMinimalTheme = function()
 			}
 			
 			ui.menus.addSubmenu('exportAs', menu, parent);
-
-			var file = ui.getCurrentFile();
 			
 			if (file != null && file.constructor == DriveFile)
 			{
 				ui.menus.addMenuItems(menu, ['-', 'share'], parent);
-
+				
 				if (file.realtime != null)
 				{
 					ui.menus.addMenuItems(menu, ['chatWindowTitle'], parent);
 				}
+				else
+				{
+					ui.menus.addMenuItems(menu, ['-', 'refresh'], parent);
+				}
 				
 				menu.addSeparator(parent);
 			}
diff --git a/src/main/webapp/js/diagramly/Pages.js b/src/main/webapp/js/diagramly/Pages.js
index 81fd0d4dd..699730146 100644
--- a/src/main/webapp/js/diagramly/Pages.js
+++ b/src/main/webapp/js/diagramly/Pages.js
@@ -460,7 +460,7 @@ Graph.prototype.createViewState = function(node)
 		background: (bg != null && bg.length > 0) ? bg : this.defaultGraphBackground,
 		backgroundImage: (bgImg != null) ? new mxImage(bgImg.src, bgImg.width, bgImg.height) : null,
 		pageScale: (!isNaN(ps)) ? ps : mxGraph.prototype.pageScale,
-		pageFormat: (!isNaN(pw) && !isNaN(ph)) ? new mxRectangle(0, 0, pw, pw) : this.pageFormat,
+		pageFormat: (!isNaN(pw) && !isNaN(ph)) ? new mxRectangle(0, 0, pw, ph) : mxSettings.getPageFormat(),
 		tooltips: node.getAttribute('tooltips') != '0',
 		connect: node.getAttribute('connect') != '0',
 		arrows: node.getAttribute('arrows') != '0',
@@ -496,8 +496,10 @@ Graph.prototype.saveViewState = function(vs, node)
 		node.setAttribute('pageHeight', pf.height);
 	}
 	
-	node.setAttribute('background', (vs != null && vs.background != null) ?
-		vs.background : this.defaultGraphBackground);
+	if (vs != null && vs.background != null)
+	{
+		node.setAttribute('background', vs.background);
+	}
 
 	if (vs != null && vs.backgroundImage != null)
 	{
diff --git a/src/main/webapp/js/diagramly/vsdx/importer.js b/src/main/webapp/js/diagramly/vsdx/importer.js
index 55c36b6c5..f343b92dc 100644
--- a/src/main/webapp/js/diagramly/vsdx/importer.js
+++ b/src/main/webapp/js/diagramly/vsdx/importer.js
@@ -1287,14 +1287,14 @@ var com;
                                              
                                         	 if (dScale != null) 
                                              {
-                                        		 dScaleV = parseFloat(dScale.getAttribute("V"));
+                                        		 dScaleV = parseFloat(dScale.getAttribute("V")) || 1;
                                              }
                                              
                                         	 var pScale = master.pageSheet["PageScale"];
                                              
                                         	 if (pScale != null) 
                                              {
-                                        		 pScaleV = parseFloat(pScale.getAttribute("V"));
+                                        		 pScaleV = parseFloat(pScale.getAttribute("V")) || 1;
                                              }
                                         	 
                                         	 scale = pScaleV / dScaleV;
@@ -1533,7 +1533,7 @@ var com;
                         }
                         /*private*/ RowFactory.getIndex = function (elem) {
                             try {
-                                return parseInt(elem.getAttribute("IX"));
+                                return parseInt(elem.getAttribute("IX")) || 1;
                             }
                             catch (e) {
                                 return 1;
@@ -2142,7 +2142,7 @@ var com;
                     }
                     mxVsdxGeometry.prototype.getIndex$org_w3c_dom_Element = function (elem) {
                         try {
-                            return parseInt(elem.getAttribute("IX"));
+                            return parseInt(elem.getAttribute("IX")) || 0;
                         }
                         catch (e) {
                             return 0;
@@ -8609,7 +8609,7 @@ var com;
                                             var cell = cells[index158];
                                             {
                                                 n = cell.getAttribute("N");
-                                                var v = cell.getAttribute("V");
+                                                var v = cell.getAttribute("V") || cell.textContent || "";
                                                 switch ((n)) {
                                                     case "Value":
                                                         value = v;
@@ -10688,9 +10688,9 @@ var com;
                             var yS = "-0.4";
                             if (control != null) {
                                 xEl = control.getElementsByTagName(com.mxgraph.io.vsdx.mxVsdxConstants.X).item(0);
-                                xS = xEl.getAttribute("F");
+                                xS = xEl.getAttribute("F") || "";
                                 yEl = control.getElementsByTagName(com.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0);
-                                yS = yEl.getAttribute("F");
+                                yS = yEl.getAttribute("F") || "";
                             }
                             var geometry_4 = vertex.getGeometry();
                             xS = xS.split("Width/2+").join("");
@@ -11080,7 +11080,7 @@ var com;
                                 var firstNURBS = firstGeom.getElementsByTagName(com.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0);
                                 var firstE = firstNURBS.getElementsByTagName("E").item(0);
                                 if (firstE != null) {
-                                    var f = firstE.getAttribute("F");
+                                    var f = firstE.getAttribute("F") || "";
                                     f = f.replace(new RegExp("NURBS\\(", 'g'), "");
                                     f = f.replace(new RegExp("\\)", 'g'), "");
                                     f = f.replace(new RegExp(",", 'g'), " ");
diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js
index 3ddb74e76..9449b657c 100644
--- a/src/main/webapp/js/embed-static.min.js
+++ b/src/main/webapp/js/embed-static.min.js
@@ -22,8 +22,8 @@ position:{cssPropBits:0,cssLitGroup:[a[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[a[14],a[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[a[52],a[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[a[42],a[56],a[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[a[19],a[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[a[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[a[26],a[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[a[46],a[71],a[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[a[71]],cssFns:"matrix() perspective() rotate() rotate3d() rotatex() rotatey() rotatez() scale() scale3d() scalex() scaley() scalez() skew() skewx() skewy() translate() translate3d() translatex() translatey() translatez()".split(" ")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[a[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[a[10],a[48],a[50],a[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[a[48],a[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[a[30],a[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[a[12],a[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[a[27],a[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[a[17],a[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42],a[48],
-a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72],a[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42],
+a[48],a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},c;for(c in b)"string"===typeof b[c]&&Object.hasOwnProperty.call(b,c)&&(b[c]=b[b[c]]);"undefined"!==typeof window&&(window.cssSchema=b);var d,e;(function(){function a(a){var b=parseInt(a.substring(1),16);return 65535<b?(b-=65536,String.fromCharCode(55296+(b>>10),56320+(b&1023))):b==b?String.fromCharCode(b):" ">a[1]?"":a[1]}function b(a,b){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g,
 b)+'"'}function c(a){return g[a]||(g[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function f(a){return h[a]||(h[a]=("">a?"%0":"%")+a.charCodeAt(0).toString(16))}var g={"\\":"\\\\"},h={"\\":"%5c"},k=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|\x3c!--|--\x3e|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]=|[^\"'\\\\/]|/(?![/*])",
@@ -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:"9.3.1",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:"9.3.4",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/")||
@@ -615,7 +615,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),h=this.graph.model.getTerminal(g,!0)==a;if(!b||h)h=this.graph.view.getVisibleTerminal(g,!h),this.traverse(h,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
@@ -1607,13 +1607,14 @@ Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b
 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)};
 Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var c=a.value.getAttribute("tooltip");if(null!=c)null!=c&&this.isReplacePlaceholders(a)&&(c=this.replacePlaceholders(a,c)),b=this.sanitizeHtml(c);else{c=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&c.push("link");for(var e=0;e<a.length;e++)0>mxUtils.indexOf(c,a[e].nodeName)&&0<a[e].nodeValue.length&&d.push({name:a[e].nodeName,value:a[e].nodeValue});d.sort(function(a,b){return a.name<b.name?
 -1:a.name>b.name?1:0});for(e=0;e<d.length;e++)"link"==d[e].name&&this.isCustomLink(d[e].value)||(b+=("link"!=d[e].name?"<b>"+d[e].name+":</b> ":"")+mxUtils.htmlEntities(d[e].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b};
-Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};
-Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";
-HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
-HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
-HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
-HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":
-IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
+Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};
+Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;
+HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";
+HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);
+HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);
+HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
+HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+
+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
 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)||
diff --git a/src/main/webapp/js/extensions.min.js b/src/main/webapp/js/extensions.min.js
index 8198335d0..8690f5cc7 100644
--- a/src/main/webapp/js/extensions.min.js
+++ b/src/main/webapp/js/extensions.min.js
@@ -592,7 +592,7 @@ c,b,p)}};h.prototype.sanitiseGraph=function(c){var b=c.getModel().getRoot();this
 -1==p.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=p.indexOf("image=")?!1:!0};return h}();w.mxVsdxCodec=l;l.__class="com.mxgraph.io.mxVsdxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
 (function(c){(function(m){(function(w){var l=function(h){function f(){var b=h.call(this)||this;b.RESPONSE_END="";b.RESPONSE_DIAGRAM_START="";b.RESPONSE_DIAGRAM_END="";b.RESPONSE_HEADER="";return b}__extends(f,h);f.prototype.decodeVssx=function(b,a,d){var g=this,p="<mxlibrary>[";this.decodeVsdx(b,function(b){p=p.concat(b);var d=g.vsdxModel.getMasterShapes(),f=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=[];null==
 a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)b.push(a.entries[d].value);return b}(g.vsdxModel.getPages())).next();if(null!=d){var D={str:"",toString:function(){return this.str}},l=0===b.length?"":",",w=function(a){return Object.keys(a).map(function(b){return a[b]})}(d);b=function(a){a=w[a];var b=m.createMxGraph(),g=a.getMasterShape().getShape(),g=new c.mxgraph.io.vsdx.VsdxShape(f,g,!f.isEdge(g),d,null,m.vsdxModel),p=1;if(null!=a.pageSheet){var x=p=1,E=a.pageSheet.DrawingScale;null!=
-E&&(p=parseFloat(E.getAttribute("V")));E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V")));p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===
+E&&(p=parseFloat(E.getAttribute("V"))||1);E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V"))||1);p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key===
 b)return a.entries[d].value;return null}(m.parentsMap,t.getKey());m.addUnconnectedEdge(b,z,t.getValue(),1169)}else x=m.addUnconnectedEdge(b,null,g,1169);if(null!=x){m.scaleGraph(b,p);g=m.normalizeGeo(x);m.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";D.str=D.str.concat(l);D.str=D.str.concat('{"xml":"');b=h.prototype.processPage.call(m,b,null);D.str=D.str.concat(b);D.str=D.str.concat('","w":');D.str=D.str.concat(g.width);D.str=D.str.concat(',"h":');D.str=
 D.str.concat(g.height);D.str=D.str.concat(',"title":');a=a.getName();null==a&&(a="");a=JSON.stringify(mxUtils.htmlEntities(a));D.str=D.str.concat(a);D.str=D.str.concat("}");l=","}};for(var m=g,C=0;C<w.length;C++)b(C);p=p.concat(D)}p=p.concat("]</mxlibrary>");a&&a(p)},d)};f.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var d=a.sourcePoint;if(b.isEdge()&&null!=d){this.transPoint(a.targetPoint,d);this.transPoint(a.offset,d);b=a.points;if(null!=b)for(var g=0;g<b.length;g++)this.transPoint(b[g],
 d);this.transPoint(d,d)}return a};f.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};f.prototype.processPage=function(b,a){var d=b.getModel(),g="",p="",f;for(f in d.cells){var E=d.cells[f];if(b.getDefaultParent()===d.getParent(E)){var g=g.concat(p),g=g.concat('{"xml":"'),x=this.createMxGraph();x.addCell(E);this.sanitiseGraph(x);if(0===x.getModel().getChildCount(x.getDefaultParent()))return"continue";p=this.normalizeGeo(E);x=h.prototype.processPage.call(this,x,null);g=g.concat(x);g=
@@ -600,8 +600,8 @@ g.concat('","w":');g=g.concat(p.width);g=g.concat(',"h":');g=g.concat(p.height);
 p.entries[t].key===x){p=p.entries[t].value;break a}p=null}null!=p&&(E=p.getName())}g=g.concat(E);g=g.concat('"}');p=","}}this.RESPONSE_DIAGRAM_START=0<g.length?",":"";return g};return f}(c.mxgraph.io.mxVsdxCodec);w.mxVssxCodec=l;l.__class="com.mxgraph.io.mxVssxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
 (function(c){(function(c){(function(c){(function(c){(function(c){var f=function(){function b(a,b,g){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=g}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA=
 function(){return this.formulaA};b.prototype.getFormulaE=function(){return this.formulaE};b.prototype.getIndex=function(){return this.index};return b}();c.Row=f;f.__class="com.mxgraph.io.vsdx.geometry.Row"})(c.geometry||(c.geometry={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
-(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null,h=null,
-l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J);
+(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null,
+h=null,l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J);
 break;case "E":w=J}}switch(g){case "MoveTo":return new c.mxgraph.io.vsdx.geometry.MoveTo(p,f,x);case "LineTo":return new c.mxgraph.io.vsdx.geometry.LineTo(p,f,x);case "ArcTo":return new c.mxgraph.io.vsdx.geometry.ArcTo(p,f,x,t);case "Ellipse":return new c.mxgraph.io.vsdx.geometry.Ellipse(p,f,x,t,h,l,m);case "EllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.EllipticalArcTo(p,f,x,t,h,l,m);case "InfiniteLine":return new c.mxgraph.io.vsdx.geometry.InfiniteLine(p,f,x,t,h);case "NURBSTo":return new c.mxgraph.io.vsdx.geometry.NURBSTo(p,
 f,x,t,h,l,m,w);case "PolylineTo":return new c.mxgraph.io.vsdx.geometry.PolylineTo(p,f,x,A);case "RelCubBezTo":return new c.mxgraph.io.vsdx.geometry.RelCubBezTo(p,f,x,t,h,l,m);case "RelEllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(p,f,x,t,h,l,m);case "RelLineTo":return new c.mxgraph.io.vsdx.geometry.RelLineTo(p,f,x);case "RelMoveTo":return new c.mxgraph.io.vsdx.geometry.RelMoveTo(p,f,x);case "RelQuadBezTo":return new c.mxgraph.io.vsdx.geometry.RelQuadBezTo(p,f,x,t,h);case "SplineKnot":return new c.mxgraph.io.vsdx.geometry.SplineKnot(p,
 f,x,t);case "SplineStart":return new c.mxgraph.io.vsdx.geometry.SplineStart(p,f,x,t,h,l,m)}}return new c.mxgraph.io.vsdx.geometry.DelRow(p)};return b}();h.RowFactory=f;f.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(l.geometry||(l.geometry={}))})(m.vsdx||(m.vsdx={}))})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
@@ -622,7 +622,7 @@ h.BULLET="Bullet";h.CASE="Case";h.CHARACTER="Character";h.COLOR="Color";h.COLOR_
 "TextBlock";h.TEXT_STYLE="TextStyle";h.TO_PART="ToPart";h.TO_SHEET="ToSheet";h.TOP_MARGIN="TopMargin";h.TRUE="1";h.TXT_ANGLE="TxtAngle";h.TXT_HEIGHT="TxtHeight";h.TXT_LOC_PIN_X="TxtLocPinX";h.TXT_LOC_PIN_Y="TxtLocPinY";h.TXT_PIN_X="TxtPinX";h.TXT_PIN_Y="TxtPinY";h.TXT_WIDTH="TxtWidth";h.TYPE="Type";h.TYPE_GROUP="Group";h.TYPE_SHAPE="Shape";h.UNIQUE_ID="UniqueID";h.VERTICAL_ALIGN="VerticalAlign";h.WIDTH="Width";h.X_CON="XCon";h.X_DYN="XDyn";h.X="X";h.Y_CON="YCon";h.Y_DYN="YDyn";h.Y="Y";h.HIDE_TEXT=
 "HideText";h.VSDX_ID="vsdxID";h.CONNECT_TO_PART_WHOLE_SHAPE=3;c.mxVsdxConstants=h;h.__class="com.mxgraph.io.vsdx.mxVsdxConstants"})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));
 (function(c){(function(m){(function(m){(function(l){var h=function(){function f(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]),
-this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType||
+this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))||0}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType||
 null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};f.prototype.processGeoElem=function(b){var a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var d=0;d<b.length;d++)0<this.rows.push(null)}for(d=0;d<a.length;d++){var g=a[d],p=g.getAttribute("N"),g=g.getAttribute("V");switch(p){case "NoFill":this.noFill=
 function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g)}}a=this.rows.length;d=!1;for(p=0;p<b.length;p++)g=c.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[p],
 this.rows),g.getIndex()>a?(0<this.rows.push(g),d=!0):this.rows[g.getIndex()-1]=g;d&&function(a,b){b.compare?a.sort(function(a,d){return b.compare(a,d)}):a.sort(b)}(this.rows,new f.mxVsdxGeometry$0(this))};f.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};f.prototype.getIndex$=function(){return this.index};f.prototype.isNoFill=function(){return this.noFill};
@@ -877,7 +877,7 @@ this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,d){f.prototype
 a.equals?a.equals(b):a===b}(h,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"EnhMetaFile"))g="png";else return;h=a.firstChild;if(null!=h){if(null!=h&&1==h.nodeType){var l=h;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(l.nodeName.toLowerCase(),"rel")&&(l=l.getAttribute("r:id"),null!=l&&0!==l.length)){var h=p.lastIndexOf("/"),m="",t="";try{m=p.substring(0,h),t=p.substring(h,p.length)}catch(z){return}h=d.getRelationship(l,m+"/_rels"+t+".rels");if(null!=h){p=h.getAttribute("Target")||
 "";l=h.getAttribute("Type");h=p.lastIndexOf("/");try{p=p.substring(h+1,p.length)}catch(z){return}null!=l&&function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(l,"image")&&(this.imageData={},(h=d.getMedia(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+p))?(this.imageData.iData=h,function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(p.toLowerCase(),".bmp")&&(g="jpg"),this.imageData.iType=g):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}return}}h=
 h.nextSibling}}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(g,c.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=a)};b.prototype.parseSection=function(a){var d=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Geometry"))null==this.geom&&(this.geom=[]),0<this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Field")){a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var g=0;g<a.length;g++){var d=a[g],p=d.getAttribute("IX")||
-"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V");switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+
+"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V")||z.textContent||"";switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+
 Math.floor(864E5*parseFloat(l)))).toString())}catch(aa){}this.fields[p]=l}}}}else f.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};b.prototype.getHeight=function(){return 0===
 this.height&&0<this.width?1:this.height};b.prototype.getRotation=function(){return this.rotation};b.prototype.getStyleMap=function(){return this.styleMap};b.prototype.hasGeom=function(){return!(null==this.geom||0==this.geom.length)};b.prototype.hasGeomList=function(){return null!=this.geomList&&this.geomList.hasGeom()};b.prototype.textToList=function(a,b){if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"")){var d=this.getBullet(b);if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(d,
 "0")){var f=a.split("\n");f[f.length-1]||f.pop();for(var h="",l=0;l<f.length;l++)h+=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(f[l],"li");h=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(h,"ul");f={};(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"4")?f["list-style-type"]="square":f["list-style-type"]="disc";return h=this.insertAttributes(h,f)}}return a};b.prototype.getTextParagraphFormated=function(a){var b="",g={};g.align=this.getHorizontalAlign(this.pp,!0);g["margin-left"]=this.getIndentLeft(this.pp);
@@ -967,7 +967,7 @@ b.prototype.getMasterName=function(){return this.shapeName};b.prototype.setLabel
 if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Organizational unit")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Organizational unit")){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0),d=null,d="0.0",f=null,f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.hasAttribute("F")?d.getAttribute("F"):d.textContent,f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),
 f=f.hasAttribute("F")?f.getAttribute("F"):f.textContent);h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Inh")&&(d="0.0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(f,"Inh")&&(f="-0.4");-1!=f.indexOf("txtHeight")&&(f="-0.4");for(var l=b.split(";"),m="",t=0;t<l.length;t++){var z=l[t],z=z.trim();(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(z,"tabHeight=")&&
 (m=z.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(m,"")&&(m="20");l=parseFloat(m);d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f-l/2);a.getGeometry().offset=d}else if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Domain 3D")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Domain 3D")){h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);d=null;
-d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F"),f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F"));h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b):
+d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F")||"",f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F")||"");h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b):
 a===b}(f,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(f,""))f="-0.4";-1!=f.indexOf("txtHeight")&&(f="-0.4");d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f);a.getGeometry().offset=d}};b.prototype.getForm=function(){var a={};if(this.isVertex())try{var d=b.getType(this.getShape());this.styleDebug("shape type = "+d);if(null!=this.imageData||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN,d)&&null!=this.masterShape&&
 null!=this.masterShape.imageData){var f=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var h=function(a,b){return a[b]?a[b]:null}(f,"iType"),l=function(a,b){return a[b]?a[b]:null}(f,"iData");a.image="data:image/"+h+","+l;return a}var m=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m,""))return this.styleDebug("No geom found"),a;var x=Graph.prototype.compress(m);a[mxConstants.STYLE_SHAPE]="stencil("+x+")"}catch(t){console.error(t.message,
 t)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName);
@@ -979,8 +979,8 @@ a===b}(f.toLowerCase(),"width*1")&&function(a,b){return a&&a.equals?a.equals(b):
 b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a.toLowerCase(),"controls.row_")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(b.toLowerCase(),"controls.row_"))?!1:!0};b.prototype.isRotatedLabel=function(){var a=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V","");null!=this.masterShape&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")&&(a=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V",""));return function(a,b){return a&&
 a.equals?a.equals(b):a===b}(a,"0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0.0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")?!1:!0};b.prototype.setRootShape=function(a){this.rootShape=a};b.prototype.getRootShape=function(){return this.rootShape};b.prototype.getStartXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X),0))/100);a=Math.floor(Math.round(100*
 (a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getEndXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_X),0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_Y),
-0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F"),
-h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=
+0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F")||
+"",h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]=
 this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=d));d=this.getEdgeMarker(!0);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_STARTFILL]=
 "0"),this.styleMap[mxConstants.STYLE_STARTARROW]=d);d=this.getEdgeMarker(!1);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_ENDFILL]="0"),this.styleMap[mxConstants.STYLE_ENDARROW]=d);d=Math.round(this.getStartArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_STARTSIZE]=""+d);d=Math.round(this.getFinalArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_ENDSIZE]=
 ""+d);d=Math.round(this.getLineWidth())|0;1!==d&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+d);d=this.getStrokeColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"")||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=d);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE);this.isConnectorBigNameU(this.getNameU())&&(this.styleMap[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_ARROW,d=this.getFillColor(),function(a,b){return a&&a.equals?a.equals(b):
diff --git a/src/main/webapp/js/mxgraph/Dialogs.js b/src/main/webapp/js/mxgraph/Dialogs.js
index c7dbf6c08..59114bab5 100644
--- a/src/main/webapp/js/mxgraph/Dialogs.js
+++ b/src/main/webapp/js/mxgraph/Dialogs.js
@@ -773,14 +773,8 @@ var EditDiagramDialog = function(editorUi)
 		
 		if (select.value == 'new')
 		{
-			window.openFile = new OpenFile(function()
-			{
-				editorUi.hideDialog();
-				window.openFile = null;
-			});
-			
-			window.openFile.setData(data, null);
-			editorUi.editor.graph.openLink(editorUi.getUrl());
+			editorUi.hideDialog();
+			editorUi.editor.editAsNew(data);
 		}
 		else if (select.value == 'replace')
 		{
diff --git a/src/main/webapp/js/mxgraph/Graph.js b/src/main/webapp/js/mxgraph/Graph.js
index 1f2dcbc3e..6da08ce9f 100644
--- a/src/main/webapp/js/mxgraph/Graph.js
+++ b/src/main/webapp/js/mxgraph/Graph.js
@@ -2924,6 +2924,14 @@ Graph.prototype.bytesToString = function(arr)
     return result.join('');
 };
 
+/**
+ * Returns a base64 encoded version of the compressed outer XML of the given node.
+ */
+Graph.prototype.compressNode = function(node)
+{
+	return this.compress(this.zapGremlins(mxUtils.getXml(node)));
+};
+
 /**
  * Returns a base64 encoded version of the compressed string.
  */
@@ -4797,6 +4805,10 @@ if (typeof mxVertexHandler != 'undefined')
 				// Mapping for multiple calls to cloneCells with the same set of cells
 				var mapping = new Object();
 				
+				// Populates the mapping to fix lookups for forward refs from edges
+				// to cells in parents that are cloned later in the loop below
+// 				this.cloneCells([model.root], this.isCloneInvalidEdges(), mapping);
+
 				for (var i = 0; i < childCount; i++)
 				{
 					var parent = model.getChildAt(model.getRoot(), i);
diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js
index 4ae85efdd..6b89d99db 100644
--- a/src/main/webapp/js/reader.min.js
+++ b/src/main/webapp/js/reader.min.js
@@ -22,8 +22,8 @@ position:{cssPropBits:0,cssLitGroup:[a[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[a[14],a[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[a[52],a[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[a[42],a[56],a[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[a[19],a[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[a[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[a[26],a[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[a[46],a[71],a[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[a[71]],cssFns:"matrix() perspective() rotate() rotate3d() rotatex() rotatey() rotatez() scale() scale3d() scalex() scaley() scalez() skew() skewx() skewy() translate() translate3d() translatex() translatey() translatez()".split(" ")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[a[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[a[10],a[48],a[50],a[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[a[48],a[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[a[30],a[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[a[12],a[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[a[27],a[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[a[17],a[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42],a[48],
-a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72],a[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42],
+a[48],a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},c;for(c in b)"string"===typeof b[c]&&Object.hasOwnProperty.call(b,c)&&(b[c]=b[b[c]]);"undefined"!==typeof window&&(window.cssSchema=b);var d,e;(function(){function a(a){var b=parseInt(a.substring(1),16);return 65535<b?(b-=65536,String.fromCharCode(55296+(b>>10),56320+(b&1023))):b==b?String.fromCharCode(b):" ">a[1]?"":a[1]}function b(a,b){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g,
 b)+'"'}function c(a){return g[a]||(g[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function f(a){return h[a]||(h[a]=("">a?"%0":"%")+a.charCodeAt(0).toString(16))}var g={"\\":"\\\\"},h={"\\":"%5c"},k=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|\x3c!--|--\x3e|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]=|[^\"'\\\\/]|/(?![/*])",
@@ -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:"9.3.1",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:"9.3.4",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/")||
@@ -615,7 +615,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),h=this.graph.model.getTerminal(g,!0)==a;if(!b||h)h=this.graph.view.getVisibleTerminal(g,!h),this.traverse(h,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
@@ -1607,13 +1607,14 @@ Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b
 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)};
 Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var c=a.value.getAttribute("tooltip");if(null!=c)null!=c&&this.isReplacePlaceholders(a)&&(c=this.replacePlaceholders(a,c)),b=this.sanitizeHtml(c);else{c=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&c.push("link");for(var e=0;e<a.length;e++)0>mxUtils.indexOf(c,a[e].nodeName)&&0<a[e].nodeValue.length&&d.push({name:a[e].nodeName,value:a[e].nodeValue});d.sort(function(a,b){return a.name<b.name?
 -1:a.name>b.name?1:0});for(e=0;e<d.length;e++)"link"==d[e].name&&this.isCustomLink(d[e].value)||(b+=("link"!=d[e].name?"<b>"+d[e].name+":</b> ":"")+mxUtils.htmlEntities(d[e].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b};
-Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};
-Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";
-HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
-HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
-HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
-HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":
-IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
+Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};
+Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;
+HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";
+HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);
+HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);
+HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
+HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+
+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
 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)||
diff --git a/src/main/webapp/js/sanitizer/sanitizer.min.js b/src/main/webapp/js/sanitizer/sanitizer.min.js
index 6e7d30d55..0d8f9a3e4 100644
--- a/src/main/webapp/js/sanitizer/sanitizer.min.js
+++ b/src/main/webapp/js/sanitizer/sanitizer.min.js
@@ -1,4 +1,5 @@
 // NOTE: Modified to support data URIs for images, ie. data:image/*
+// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break"
 (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","),
 "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","),
 "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","),
@@ -23,7 +24,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
 J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X;
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 83dfccf58..fd8b55c2b 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -2,6 +2,7 @@ window.STENCIL_PATH=window.STENCIL_PATH||"https://www.draw.io/stencils";window.S
 //fgnass.github.com/spin.js#v2.0.0
 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
 // NOTE: Modified to support data URIs for images, ie. data:image/*
+// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break"
 (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","),
 "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","),
 "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","),
@@ -26,7 +27,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css
 cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
 cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()",
 "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]],
-cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
+cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
 J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
 "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
 "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X;
@@ -664,7 +665,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b
 mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph};
 mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null};
 mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
-mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
+mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
 mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
 mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
 mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
@@ -1955,9 +1956,9 @@ x.style.color=.5>.213*this.rgb[0]+.715*this.rgb[1]+.072*this.rgb[2]?"#FFF":"#000
 this.rgb[1]=b;var e=null===c?this.rgb[2]:this.rgb[2]=c,f=Math.min(Math.min(a,b),e);c=Math.max(Math.max(a,b),e);var g=c-f;0===g?a=[null,0,c]:(a=a===f?3+(e-b)/g:b===f?5+(a-e)/g:1+(b-a)/g,a=[6===a?0:a,g/c,c]);null!==a[0]&&(this.hsv[0]=a[0]);0!==a[2]&&(this.hsv[1]=a[1]);this.hsv[2]=a[2];this.exportColor(d)};this.fromString=function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4,
 2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=jscolor.fetchElement(this.valueElement),x=jscolor.fetchElement(this.styleElement),
 y=!1,A=!1,z=1,v=2,B=4,C=8;u&&(q=function(){r.fromString(u.value,z);p()},jscolor.addEvent(u,"keyup",q),jscolor.addEvent(u,"input",q),jscolor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,color:x.style.color});switch(t){case 0:jscolor.requireImage("hs.png");break;case 1:jscolor.requireImage("hv.png")}this.importColor()}};jscolor.install();
-Editor=function(a,d,e,b,h){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=b||this.createGraph(d,e);this.editable=null!=h?h:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
-function(){return this.status};this.graphChangeListener=function(a,b){var d=null!=b?b.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
-(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(d){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
+Editor=function(a,b,e,d,k){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=k?k:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
+function(){return this.status};this.graphChangeListener=function(a,d){var b=null!=d?d.getProperty("edit"):null;null!=b&&b.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
+(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
 Editor.helpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5BxTwAAAAH3RSTlMAlUF8boNQIE0LBgOgkGlHNSwqFIx/dGVUOjApmV9ezNACSAAAAIVJREFUGNNtjNsOgzAMQ5NeoVcKDAZs+//PXLKI8YKlWvaRU7jXuFpb9qsbdK05XILUiE8JHQox1Pv3OgFUzf1AGqWqUg+QBwLF0YAeegBlCNgRWOpB5vUfTCmeoHQ/wNdy0jLH/cM+b+wLTw4n/7ACEmHVVy8h6qy8V7MNcGowWpsNbvUFcGUEdSi1s/oAAAAASUVORK5CYII=":IMAGE_PATH+
 "/help.png";
 Editor.checkmarkImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhFQAVAMQfAGxsbHx8fIqKioaGhvb29nJycvr6+sDAwJqamltbW5OTk+np6YGBgeTk5Ly8vJiYmP39/fLy8qWlpa6ursjIyOLi4vj4+N/f3+3t7fT09LCwsHZ2dubm5r6+vmZmZv///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEY4NTZERTQ5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEY4NTZERTU5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Rjg1NkRFMjlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Rjg1NkRFMzlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAB8ALAAAAAAVABUAAAVI4CeOZGmeaKqubKtylktSgCOLRyLd3+QJEJnh4VHcMoOfYQXQLBcBD4PA6ngGlIInEHEhPOANRkaIFhq8SuHCE1Hb8Lh8LgsBADs=":IMAGE_PATH+
@@ -1976,26 +1977,26 @@ Editor.previousLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAA
 Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.popupsAllowed=!0;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0;
 Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))};
 Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a};
-Editor.prototype.editAsNew=function(a,d){var e=null!=d?"?title="+encodeURIComponent(d):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+
-(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,d){var e=new Graph(null,d,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e};
+Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(d){"ready"==d.data&&d.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+
+(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,b){var e=new Graph(null,b,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e};
 Editor.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView()||"1"==urlParams.grid;this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=this.graph.defaultGraphBackground;
 this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
 Editor.prototype.readGraphState=function(a){this.graph.gridEnabled="0"!=a.getAttribute("grid")&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=a.getAttribute("guides");this.graph.setTooltips("0"!=a.getAttribute("tooltips"));this.graph.setConnectable("0"!=a.getAttribute("connect"));this.graph.connectionArrowsEnabled="0"!=a.getAttribute("arrows");this.graph.foldingEnabled=
-"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var d=parseFloat(a.getAttribute("pageScale"));!isNaN(d)&&0<d?this.graph.pageScale=d:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(d=a.getAttribute("page"),this.graph.pageVisible=null!=d?"0"!=d:this.graph.defaultPageVisible);this.graph.pageBreaksVisible=
-this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(d)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,d,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground};
-Editor.prototype.setGraphXml=function(a){if(null!=a){var d=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),d.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=d.document.createElement("mxGraphModel");e.appendChild(a);d.decode(e,this.graph.getModel());
+"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var b=parseFloat(a.getAttribute("pageScale"));!isNaN(b)&&0<b?this.graph.pageScale=b:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(b=a.getAttribute("page"),this.graph.pageVisible=null!=b?"0"!=b:this.graph.defaultPageVisible);this.graph.pageBreaksVisible=
+this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var b=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(b)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,b,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground};
+Editor.prototype.setGraphXml=function(a){if(null!=a){var b=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),b.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=b.document.createElement("mxGraphModel");e.appendChild(a);b.decode(e,this.graph.getModel());
 this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))}else throw{message:mxResources.get("cannotOpenFile"),node:a,toString:function(){return this.message}};}else this.resetGraph(),this.graph.model.clear(),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,d=new mxUndoManager;this.undoListener=function(a,e){d.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,d){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,d){for(var e=a.getSelectionCellsForChanges(d.getProperty("edit").changes),h=a.getModel(),q=[],u=0;u<e.length;u++)(h.isVertex(e[u])||h.isEdge(e[u]))&&null!=a.view.getState(e[u])&&
-q.push(e[u]);a.setSelectionCells(q)};d.addListener(mxEvent.UNDO,e);d.addListener(mxEvent.REDO,e);return d};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,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(d,b){for(var e=a.getSelectionCellsForChanges(b.getProperty("edit").changes),k=a.getModel(),q=[],u=0;u<e.length;u++)(k.isVertex(e[u])||k.isEdge(e[u]))&&null!=a.view.getState(e[u])&&
+q.push(e[u]);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,d,e,b,h,m,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;b+=c;var f=e,g=b,k=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),l=Math.max(1,Math.round((k-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(d.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);
-b=Math.min(b,k-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=k+"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 n=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=n.x+"px";this.bg.style.top=n.y+"px";r+=n.x;l+=n.y;h&&
-document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");h=this.getPosition(r,l,e,b);r=h.x;l=h.y;w.style.width=e+"px";w.style.height=b+"px";w.style.left=r+"px";w.style.top=l+"px";w.style.zIndex=this.zIndex;w.appendChild(d);document.body.appendChild(w);!q&&d.clientHeight>w.clientHeight-64&&(d.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=l+14+"px",m.style.left=r+e+38-c+"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(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){k=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=k+"px";r=Math.max(1,Math.round((document.body.clientWidth-
-e-64)/2));l=Math.max(1,Math.round((k-b-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);b=Math.min(g,k-64);var n=this.getPosition(r,l,e,b);r=n.x;l=n.y;w.style.left=r+"px";w.style.top=l+"px";w.style.width=e+"px";w.style.height=b+"px";!q&&d.clientHeight>w.clientHeight-64&&(d.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=l+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;this.container=
+function Dialog(a,b,e,d,k,l,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;d+=c;var f=e,g=d,n=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),h=Math.max(1,Math.round((n-d-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);
+d=Math.min(d,n-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=n+"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 m=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=m.x+"px";this.bg.style.top=m.y+"px";r+=m.x;h+=m.y;k&&
+document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");k=this.getPosition(r,h,e,d);r=k.x;h=k.y;w.style.width=e+"px";w.style.height=d+"px";w.style.left=r+"px";w.style.top=h+"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=h+14+"px",l.style.left=r+e+38-c+"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(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){n=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=n+"px";r=Math.max(1,Math.round((document.body.clientWidth-
+e-64)/2));h=Math.max(1,Math.round((n-d-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);d=Math.min(g,n-64);var m=this.getPosition(r,h,e,d);r=m.x;h=m.y;w.style.left=r+"px";w.style.top=h+"px";w.style.width=e+"px";w.style.height=d+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=h+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;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";
@@ -2004,150 +2005,150 @@ Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKA
 Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCODExNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCODIxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3RjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI4MDE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvqMCFYAAAAVUExURZmZmb+/v7KysqysrMzMzLGxsf///4g8N1cAAAAHdFJOU////////wAaSwNGAAAAPElEQVR42lTMQQ4AIQgEwUa0//9kTQirOweYOgDqAMbZUr10AGlAwx4/BJ2QJ4U0L5brYjovvpv32xZgAHZaATFtMbu4AAAAAElFTkSuQmCC":IMAGE_PATH+
 "/locked.png";
 Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+
-"/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,d){return new mxPoint(a,d)};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,d){this.create(a,d)};
-PrintDialog.prototype.create=function(a){function d(a){var b=q.checked||c.checked,d=parseInt(g.value)/100;isNaN(d)&&(d=1,g.value="100%");var d=.75*d,k=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(b){var h=q.checked?1:parseInt(f.value);isNaN(h)||(r=mxUtils.getScaleForPageCount(h,e,k))}e.getGraphBounds();var y=h=0,k=mxRectangle.fromRectangle(k);k.width=Math.ceil(k.width*d);k.height=Math.ceil(k.height*d);r*=d;!b&&e.pageVisible?(d=e.getPageLayout(),h-=d.x*k.width,y-=d.y*k.height):
-b=!0;b=PrintDialog.createPrintPreview(e,r,k,0,h,y,b);b.open();a&&PrintDialog.printPreview(b)}var e=a.editor.graph,b,h,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var p=document.createElement("tbody");b=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");h=document.createElement("td");h.setAttribute("colspan","2");h.style.fontSize="10pt";h.appendChild(q);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage"));
-h.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});b.appendChild(h);p.appendChild(b);b=b.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");h.appendChild(u);mxEvent.addListener(u,
-"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});b.appendChild(h);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";h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(f);mxUtils.write(h," "+mxResources.get("pages")+" (max)");b.appendChild(h);p.appendChild(b);mxEvent.addListener(c,"change",
-function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});b=b.cloneNode(!1);h=document.createElement("td");mxUtils.write(h,mxResources.get("pageScale")+":");b.appendChild(h);h=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";h.appendChild(g);b.appendChild(h);p.appendChild(b);b=document.createElement("tr");h=document.createElement("td");h.colSpan=2;
-h.style.paddingTop="20px";h.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&h.appendChild(u);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)});k.className="geBtn";h.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});k.className="geBtn gePrimaryBtn";h.appendChild(k);a.editor.cancelFirst||
-h.appendChild(u);b.appendChild(h);p.appendChild(b);m.appendChild(p);this.container=m};PrintDialog.printPreview=function(a){if(null!=a.wnd){var d=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(d,500):d()}};
-PrintDialog.createPrintPreview=function(a,d,e,b,h,m,p){d=new mxPrintPreview(a,d,e,b,h,m);d.title=mxResources.get("preview");d.printBackgroundImage=!0;d.autoOrigin=p;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";d.backgroundColor=a;var q=d.writeHead;d.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 d};
+"/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 d=q.checked||c.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,n=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(d){var k=q.checked?1:parseInt(f.value);isNaN(k)||(r=mxUtils.getScaleForPageCount(k,e,n))}e.getGraphBounds();var y=k=0,n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*b);n.height=Math.ceil(n.height*b);r*=b;!d&&e.pageVisible?(b=e.getPageLayout(),k-=b.x*n.width,y-=b.y*n.height):
+d=!0;d=PrintDialog.createPrintPreview(e,r,n,0,k,y,d);d.open();a&&PrintDialog.printPreview(d)}var e=a.editor.graph,d,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var p=document.createElement("tbody");d=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 u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage"));
+k.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});d.appendChild(k);p.appendChild(d);d=d.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");k.appendChild(u);mxEvent.addListener(u,
+"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});d.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)");d.appendChild(k);p.appendChild(d);mxEvent.addListener(c,"change",
+function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});d=d.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");d.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);d.appendChild(k);p.appendChild(d);d=document.createElement("tr");k=document.createElement("td");k.colSpan=2;
+k.style.paddingTop="20px";k.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&k.appendChild(u);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});n.className="geBtn";k.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});n.className="geBtn gePrimaryBtn";k.appendChild(n);a.editor.cancelFirst||
+k.appendChild(u);d.appendChild(k);p.appendChild(d);l.appendChild(p);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,d,k,l,p){b=new mxPrintPreview(a,b,e,d,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=p;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 d(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.style.backgroundImage="")}function e(){null==r?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxResources.get("change")+"..."):(k.setAttribute("title",r.src),k.style.fontSize="11px",k.innerHTML=r.src.substring(0,42)+"...")}var b=a.editor.graph,h,m,p=document.createElement("table");p.style.width=
-"100%";p.style.height="100%";var q=document.createElement("tbody");h=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");h.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var u=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",b.pageFormat);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");
-mxUtils.write(m,mxResources.get("background")+":");h.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=b.background;d();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;d()});mxEvent.consume(c)});
-m.appendChild(c);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=b.getGridSize();m.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?b.getGridSize():a)});h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,mxResources.get("image")+
-":");h.appendChild(m);m=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var r=b.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();m.appendChild(k);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align","right");var l=
-mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&m.appendChild(l);var n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==g.value&&b.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=b.background==f;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&&
-c.ignoreColor&&c.ignoreImage||b.model.execute(c)});n.className="geBtn gePrimaryBtn";m.appendChild(n);a.editor.cancelFirst||m.appendChild(l);h.appendChild(m);q.appendChild(h);p.appendChild(q);this.container=p};
-PageSetupDialog.addPageFormatPanel=function(a,d,e,b){function h(a,c,b){if(b||g!=document.activeElement&&k!=document.activeElement){a=!1;for(c=0;c<l.length;c++)b=l[c],B?"custom"==b.key&&(q.value=b.key,B=!1):null!=b.format&&("a4"==b.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==b.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==b.format.width&&
-e.height==b.format.height?(q.value=b.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==b.format.height&&e.height==b.format.width&&(q.value=b.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,k.value=e.height/100,m.setAttribute("checked","checked"),
-q.value="custom",u.style.display="none",f.style.display="")}}d="format-"+d;var m=document.createElement("input");m.setAttribute("name",d);m.setAttribute("type","radio");m.setAttribute("value","portrait");var p=document.createElement("input");p.setAttribute("name",d);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px";
-u.style.height="24px";m.style.marginRight="6px";u.appendChild(m);d=document.createElement("span");d.style.maxWidth="100px";mxUtils.write(d,mxResources.get("portrait"));u.appendChild(d);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);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 k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";f.appendChild(k);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},l=PageSetupDialog.getFormats(),n=0;n<l.length;n++){var w=l[n];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var B=!1;h();a.appendChild(q);mxUtils.br(a);
-a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var d=r[q.value];null!=d.format?(g.value=d.format.width/100,k.value=d.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");d=parseFloat(g.value);if(isNaN(d)||0>=d)g.value=e.width/100;d=parseFloat(k.value);if(isNaN(d)||0>=d)k.value=e.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(k.value)));"custom"!=q.value&&p.checked&&(d=new mxRectangle(0,0,
-d.height,d.width));c&&B||d.width==y.width&&d.height==y.height||(y=d,null!=b&&b(y))};mxEvent.addListener(d,"click",function(a){m.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(k,"blur",t);mxEvent.addListener(k,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(m,"change",t);mxEvent.addListener(q,"change",function(a){B="custom"==q.value;
-t(a,!0)});t();return{set:function(a){e=a;h(null,null,!0)},get:function(){return y},widthInput:g,heightInput:k}};
+var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.style.backgroundImage="")}function e(){null==r?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",r.src),n.style.fontSize="11px",n.innerHTML=r.src.substring(0,42)+"...")}var d=a.editor.graph,k,l,p=document.createElement("table");p.style.width=
+"100%";p.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 u=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",d.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 c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=d.background;b();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(c)});
+l.appendChild(c);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=d.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?d.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 n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var r=d.backgroundImage;mxEvent.addListener(n,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();l.appendChild(n);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 m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.gridSize!==g.value&&d.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=d.background==f;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=r?r.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==c.previousFormat.height&&
+c.ignoreColor&&c.ignoreImage||d.model.execute(c)});m.className="geBtn gePrimaryBtn";l.appendChild(m);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);q.appendChild(k);p.appendChild(q);this.container=p};
+PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function k(a,c,d){if(d||g!=document.activeElement&&n!=document.activeElement){a=!1;for(c=0;c<h.length;c++)d=h[c],A?"custom"==d.key&&(q.value=d.key,A=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&&
+e.height==d.format.height?(q.value=d.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,n.value=e.height/100,l.setAttribute("checked","checked"),
+q.value="custom",u.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 p=document.createElement("input");p.setAttribute("name",b);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px";
+u.style.height="24px";l.style.marginRight="6px";u.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));u.appendChild(b);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);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 n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";f.appendChild(n);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},h=PageSetupDialog.getFormats(),m=0;m<h.length;m++){var w=h[m];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var A=!1;k();a.appendChild(q);mxUtils.br(a);
+a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var b=r[q.value];null!=b.format?(g.value=b.format.width/100,n.value=b.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");b=parseFloat(g.value);if(isNaN(b)||0>=b)g.value=e.width/100;b=parseFloat(n.value);if(isNaN(b)||0>=b)n.value=e.height/100;b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(n.value)));"custom"!=q.value&&p.checked&&(b=new mxRectangle(0,0,
+b.height,b.width));c&&A||b.width==y.width&&b.height==y.height||(y=b,null!=d&&d(y))};mxEvent.addListener(b,"click",function(a){l.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(n,"blur",t);mxEvent.addListener(n,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(l,"change",t);mxEvent.addListener(q,"change",function(a){A="custom"==q.value;
+t(a,!0)});t();return{set:function(a){e=a;k(null,null,!0)},get:function(){return y},widthInput:g,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}]};
-(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect=
+(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var d=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(d),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect=
 mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(c){a.dblClick(c)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c))}),
-mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=
-null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=b&&this.gridColor!=b.toLowerCase()?this.gridColor:"#ffffff",d="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(d=unescape(encodeURIComponent(this.createSvgGrid(c))),d=window.btoa?btoa(d):Base64.encode(d,!0),d="url(data:image/svg+xml;base64,"+d+")",g=a.gridSize*this.scale*this.gridSteps):
-d="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,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=g,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=[],g=1;g<this.gridSteps;g++){var e=g*b;d.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+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,d){a.apply(this,arguments);if(null!=this.shiftPreview1){var c=
-this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,r=d*this.pageScale,l=this.view.getBackgroundPageBounds();b=l.width;c=l.height;var n=
-new mxRectangle(d*g.x,d*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(n.width,n.height)>this.minPageBreakDist)?Math.ceil(c/n.height)-1:0,v=a?Math.ceil(b/n.width)-1:0,h=l.x+b,y=l.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),Math.round(l.y+(b+1)*n.height)),
-new mxPoint(Math.round(h),Math.round(l.y+(b+1)*n.height))]:[new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(l.y)),new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(y))];null!=a[b]?(a[b].points=d,a[b].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[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
-var d=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){for(var f=0;f<b.length;f++)if(this.graph.getModel().isVertex(b[f])){var g=this.graph.getCellGeometry(b[f]);if(null!=g&&g.relative)return!1}return d.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.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,g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),r=Math.floor(Math.min(0,
-c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-r)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,d){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=d+"px")};var h=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=h.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 b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=m.apply(this,arguments),g=b.getParent(d);
-if(null==c||c!=d&&c!=g)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(g)&&b.isVertex(g)&&!this.graph.isContainer(g);)d=g,g=this.graph.getModel().getParent(d);return d};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=p.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),g=d.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&d.isVertex(g)){c=!0;break}g=d.getParent(g)}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,d,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=d||document.body;var b=this.editor.graph;b.lightbox=e;b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
-this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var h=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||b.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=h,this.menubarContainer.onmousedown=
-h,this.toolbarContainer.onselectstart=h,this.toolbarContainer.onmousedown=h,this.diagramContainer.onselectstart=h,this.diagramContainer.onmousedown=h,this.sidebarContainer.onselectstart=h,this.sidebarContainer.onmousedown=h,this.formatContainer.onselectstart=h,this.formatContainer.onmousedown=h,this.footerContainer.onselectstart=h,this.footerContainer.onmousedown=h,null!=this.tabContainer&&(this.tabContainer.onselectstart=h));!this.editor.chromeless||this.editor.editable?(d=function(a){var c=mxEvent.getSource(a);
-if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return h(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",d):this.diagramContainer.oncontextmenu=d):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(d=b.view.getDrawPane().ownerSVGElement,null!=d&&(d.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
-mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var m=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return m||p.apply(this,arguments)};this.keydownHandler=
-mxUtils.bind(this,function(a){32==a.which?(m=!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="";m=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=b.panningHandler.isForcePanningEvent;b.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 u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.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 c=!1,f=null,g=null,k=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,d=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),d.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==k)this.toolbar.createTextToolbar();else{for(var l=0;l<k.length;l++)this.toolbar.container.appendChild(k[l]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
-g}c=b.cellEditor.isContentEditing();f=a;g=e;k=d}}),l=this,n=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){n.apply(this,arguments);r();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!=l.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d=
-d.substring(0,d.length-1));l.toolbar.setFontName(d);l.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,c){w.apply(this,arguments);r()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default";
-if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(A){}var v=b.fireMouseEvent;b.fireMouseEvent=function(a,c,b){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,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var B="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="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=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(d.push(c.style[g]),f.push(g));g=b.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],l=0;l<e.length;l++){var k=e[l],
-n=k.indexOf("=");0<=n&&(g=k.substring(0,n),k=k.substring(n+1),null!=a[g]&&"none"==k&&(d.push(k),f.push(g)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"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 t=
-["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(d=0;d<H[a].length;d++)B.push(H[a][d]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(B,y[a])&&B.push(y[a]);var G=function(a,c){var d=b.getModel();
-d.beginUpdate();try{if(c)for(var f=d.isEdge(l),g=f?b.currentEdgeStyle:b.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var k=g[f[e]];null!=k&&b.setCellStyles(f[e],k,a)}else for(k=0;k<a.length;k++){for(var l=a[k],n=d.getStyle(l),r=null!=n?n.split(";"):[],F=B.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),h=mxUtils.indexOf(F,w);0<=h&&F.splice(h,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var A=0;A<
-z.length;A++){var m=mxUtils.indexOf(F,z[A]);0<=m&&F.splice(m,1)}}}}for(var g=(f=d.isEdge(l))?b.currentEdgeStyle:b.currentVertexStyle,p=d.getStyle(l),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}d.setStyle(l,p)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});b.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT,
-function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));G(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),f=!1,g=!1;if(0<d.length)for(var e=0;e<d.length&&(f=b.getModel().isVertex(d[e])||f,!(g=b.getModel().isEdge(d[e])||g)||!f);e++);else g=f=!0;for(var d=c.getProperty("keys"),k=c.getProperty("values"),e=0;e<d.length;e++){var l=0<=mxUtils.indexOf(t,d[e]);if("strokeColor"!=d[e]||null!=k[e]&&"none"!=
-k[e])if(0<=mxUtils.indexOf(y,d[e]))g||0<=mxUtils.indexOf(z,d[e])?null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]:f&&0<=mxUtils.indexOf(B,d[e])&&(null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e]);else if(0<=mxUtils.indexOf(B,d[e])){if(f||l)null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e];if(g||l||0<=mxUtils.indexOf(z,d[e]))null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily||
-Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
-b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape?
-"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
-this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
-this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),f=c.getProperty("parent");b.getModel().isLayer(f)&&!b.isCellVisible(f)&&null!=d&&0<d.length&&b.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
+mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=d,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=
+null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,d=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=d&&this.gridColor!=d.toLowerCase()?this.gridColor:"#ffffff",b="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(b=unescape(encodeURIComponent(this.createSvgGrid(c))),b=window.btoa?btoa(b):Base64.encode(b,!0),b="url(data:image/svg+xml;base64,"+b+")",g=a.gridSize*this.scale*this.gridSteps):
+b="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.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=
+d,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=d,c.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var c=this.gridSteps*d,b=[],g=1;g<this.gridSteps;g++){var e=g*d;b.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+c)}return'<svg width="'+
+c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+b.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(d,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var c=
+this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+d,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,d,c){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,r=b*this.pageScale,h=this.view.getBackgroundPageBounds();d=h.width;c=h.height;var m=
+new mxRectangle(b*g.x,b*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(m.width,m.height)>this.minPageBreakDist)?Math.ceil(c/m.height)-1:0,v=a?Math.ceil(d/m.width)-1:0,k=h.x+d,y=h.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,d=0;d<=c;d++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(d+1)*m.height)),
+new mxPoint(Math.round(k),Math.round(h.y+(d+1)*m.height))]:[new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(y))];null!=a[d]?(a[d].points=b,a[d].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[d]=b)}for(d=c;d<a.length;d++)a[d].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,d,c){for(var f=0;f<d.length;f++)if(this.graph.getModel().isVertex(d[f])){var g=this.graph.getCellGeometry(d[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(d,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(),d=0<a.width?a.x/this.scale-this.translate.x:0,c=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,d)/e),r=Math.floor(Math.min(0,
+c)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*b),this.scale*(Math.ceil(Math.max(1,d+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/b)-r)*b)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,d,c,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 d=this.graph.getModel(),c=d.getParent(this.graph.getSelectionCell()),b=l.apply(this,arguments),g=d.getParent(b);
+if(null==c||c!=b&&c!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&d.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,d){var c=p.apply(this,arguments);if(!c)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){c=!0;break}g=b.getParent(g)}return c};mxGraphHandler.prototype.selectDelayed=
+function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var d=a.getCell();null==d&&(d=this.cell);var c=this.graph.view.getState(d);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),b=c.getParent(d);!this.graph.isCellSelected(b)&&c.isVertex(b);)d=b,b=c.getParent(d);this.graph.selectCellForEvent(d,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var d=this.graph.getModel(),c=d.getParent(a);d.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
+(a=c),c=d.getParent(c);return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);
+this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||d.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 c=mxEvent.getSource(a);
+if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();
+mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var l=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return l||p.apply(this,arguments)};this.keydownHandler=
+mxUtils.bind(this,function(a){32==a.which?(l=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.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){d.container.style.cursor="";l=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=d.panningHandler.isForcePanningEvent;d.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 u=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return u.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 c=!1,f=null,g=null,n=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=d.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==n)this.toolbar.createTextToolbar();else{for(var h=0;h<n.length;h++)this.toolbar.container.appendChild(n[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu=
+g}c=d.cellEditor.isContentEditing();f=a;g=e;n=b}}),h=this,m=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){m.apply(this,arguments);r();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=d.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=h.toolbar)){var b=c.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(c.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var w=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){w.apply(this,arguments);r()};d.container.setAttribute("tabindex","0");d.container.style.cursor="default";
+if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(B){}var v=d.fireMouseEvent;d.fireMouseEvent=function(a,c,d){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,d){this.menus.createPopupMenu(a,c,d)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
+this.getKeyHandler=function(){return keyHandler};var A="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=d.view.getState(a);if(null!=c){a=a.clone();a.style="";a=d.getCellStyle(a);var b=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(b.push(c.style[g]),f.push(g));g=d.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],h=0;h<e.length;h++){var n=e[h],
+m=n.indexOf("=");0<=m&&(g=n.substring(0,m),n=n.substring(m+1),null!=a[g]&&"none"==n&&(b.push(n),f.push(g)))}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[c.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var t=
+["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(b=0;b<H[a].length;b++)A.push(H[a][b]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(A,y[a])&&A.push(y[a]);var G=function(a,c){var b=d.getModel();
+b.beginUpdate();try{if(c)for(var f=b.isEdge(n),g=f?d.currentEdgeStyle:d.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var h=g[f[e]];null!=h&&d.setCellStyles(f[e],h,a)}else for(h=0;h<a.length;h++){for(var n=a[h],m=b.getStyle(n),r=null!=m?m.split(";"):[],F=A.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),k=mxUtils.indexOf(F,w);0<=k&&F.splice(k,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var B=0;B<
+z.length;B++){var l=mxUtils.indexOf(F,z[B]);0<=l&&F.splice(l,1)}}}}for(var g=(f=b.isEdge(n))?d.currentEdgeStyle:d.currentVertexStyle,p=b.getStyle(n),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}b.setStyle(n,p)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,
+function(a,c){var d=[c.getProperty("cell")];c.getProperty("terminalInserted")&&d.push(c.getProperty("terminal"));G(d)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),h=c.getProperty("values"),e=0;e<b.length;e++){var n=0<=mxUtils.indexOf(t,b[e]);if("strokeColor"!=b[e]||null!=h[e]&&"none"!=
+h[e])if(0<=mxUtils.indexOf(y,b[e]))g||0<=mxUtils.indexOf(z,b[e])?null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]:f&&0<=mxUtils.indexOf(A,b[e])&&(null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e]);else if(0<=mxUtils.indexOf(A,b[e])){if(f||n)null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e];if(g||n||0<=mxUtils.indexOf(z,b[e]))null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||
+Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==
+d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?
+"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=
+this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a);
+this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,
 this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,
-"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()};
+"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()};
 mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=34;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:208;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;
 EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
 EditorUi.prototype.init=function(){var a=this.editor.graph;mxEvent.addListener(a.container,"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));
-var d=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){d.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var d=this.editor.graph;9==a.which&&d.isEnabled()&&!mxEvent.isAltDown(a)&&(d.isEditing()?d.stopEditing(!1):d.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
-EditorUi.prototype.onKeyPress=function(a){var d=this.editor.graph;!this.isImmediateEditingEvent(a)||d.isEditing()||d.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(d.escape(),d.startEditing(),mxClient.IS_FF&&(d=d.cellEditor,d.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(d.textarea),a.collapse(!1),d=window.getSelection(),d.removeAllRanges(),d.addRange(a)))};
+var b=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){b.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9==a.which&&b.isEnabled()&&!mxEvent.isAltDown(a)&&(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))};
+EditorUi.prototype.onKeyPress=function(a){var b=this.editor.graph;!this.isImmediateEditingEvent(a)||b.isEditing()||b.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(b.escape(),b.startEditing(),mxClient.IS_FF&&(b=b.cellEditor,b.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(b.textarea),a.collapse(!1),b=window.getSelection(),b.removeAllRanges(),b.addRange(a)))};
 EditorUi.prototype.isImmediateEditingEvent=function(a){return!0};
-EditorUi.prototype.getCssClassForMarker=function(a,d,e,b){return"flexArrow"==d?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==b?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==b?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+
-a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==b?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==b?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==b?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==b?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==b?"geSprite geSprite-"+a+"thindiamond":
-"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==b?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==b||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+
+EditorUi.prototype.getCssClassForMarker=function(a,b,e,d){return"flexArrow"==b?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==d?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==d?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+
+a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==d?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==d?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==d?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==d?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond":
+"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==d?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==d||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+
 a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
-EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,d=this.actions.get("paste"),e=this.actions.get("pasteHere");d.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(d.isEnabled())};
-EditorUi.prototype.initClipboard=function(){var a=this,d=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):d.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(d){d.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var b=mxClipboard.paste;mxClipboard.paste=function(d){var e=null;d.cellEditor.isContentEditing()?document.execCommand("paste",
-!1,null):e=b.apply(this,arguments);a.updatePasteActionStates();return e};var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(d,b){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20;
+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(d){d.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 d=mxClipboard.paste;mxClipboard.paste=function(b){var e=null;b.cellEditor.isContentEditing()?document.execCommand("paste",
+!1,null):e=d.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,d){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20;
 EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width,
-this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,d){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var d=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=d=mxUtils.bind(this,function(c,d,b,f){if(null!=a.container){b=null!=b?b:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,l=a.view.scale,n=mxRectangle.fromRectangle(g);
-n.x=n.x/l-k.x;n.y=n.y/l-k.y;n.width/=l;n.height/=l;var k=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(d||1,y/n.width)):l;d=(y-c*n.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*n.height)/this.lightboxVerticalDivider/c;e&&(d=Math.max(d,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c,
-Math.floor(d-n.x),Math.floor(F-n.y)),a.container.scrollTop=k*c/l,a.container.scrollLeft=r*c/l;else if(0!=b||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+b/l),Math.floor(g.y+f/l))}});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*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),h=a.view.translate,n=a.view.scale,m=mxRectangle.fromRectangle(g);
+m.x=m.x/n-h.x;m.y=m.y/n-h.y;m.width/=n;m.height/=n;var h=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(b||1,y/m.width)):n;b=(y-c*m.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*m.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c,
+Math.floor(b-m.x),Math.floor(F-m.y)),a.container.scrollTop=h*c/n,a.container.scrollLeft=r*c/n;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/n),Math.floor(g.y+f/n))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView",
 mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){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 h=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||
-0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",h);h();var m=0,h=mxUtils.bind(this,function(a,c,d){m++;var b=document.createElement("span");b.style.paddingLeft="8px";b.style.paddingRight="8px";b.style.cursor="pointer";mxEvent.addListener(b,"click",a);null!=d&&b.setAttribute("title",d);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);b.appendChild(a);this.chromelessToolbar.appendChild(b);
-return b}),p=h(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.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=h(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,
+"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 c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]||
+0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",k);k();var l=0,k=mxUtils.bind(this,function(a,c,b){l++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d);
+return d}),p=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.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,
 mxResources.get("nextPage")),c=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))});p.style.paddingLeft="0px";p.style.paddingRight="4px";u.style.paddingLeft="4px";u.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(u.style.display="",p.style.display="",q.style.display="inline-block"):
-(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);h(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");h(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");h(mxUtils.bind(this,
-function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,k=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;k=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
-"none";k=null}),600)}),a||200)}),l=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var n=h(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
-"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var d=n.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=d.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=d.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){n.style.display=1<w.getChildCount(w.root)?
-"":"none"})}this.addChromelessToolbarItems(h);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||h(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v=
-this.lightboxToolbarActions[f];h(v.fn,v.icon,v.tooltip)}!a.lightbox||"1"!=urlParams.close&&this.container==document.body||h(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)||l(30),r())}));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)?r():l(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():l(100);mxEvent.consume(a)}));
-mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||l(30)}));var B=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<B&&Math.abs(this.scrollTop-
-a.container.scrollTop)<B&&Math.abs(this.startX-d.getGraphX())<B&&Math.abs(this.startY-d.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():l(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=
-a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),d=this.getPagePadding(),b=this.getPageSize(),f=Math.ceil(2*d.x+c.width*b.width),g=Math.ceil(2*d.y+c.height*b.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=d.x-c.x*b.width;d=d.y-c.y*b.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==
-d?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,b=a.view.translate.y,a.view.setTranslate(f,d),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((d-b)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=
+(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);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(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,n=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;n=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
+"none";n=null}),600)}),a||200)}),h=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),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 m=k(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
+"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=m.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
+mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){m.style.display=1<w.getChildCount(w.root)?
+"":"none"})}this.addChromelessToolbarItems(k);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||k(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v=
+this.lightboxToolbarActions[f];k(v.fn,v.icon,v.tooltip)}!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),r())}));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)?r():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():h(100);mxEvent.consume(a)}));
+mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var A=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<A&&Math.abs(this.scrollTop-
+a.container.scrollTop)<A&&Math.abs(this.startX-b.getGraphX())<A&&Math.abs(this.startY-b.getGraphY())<A&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y=
+a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y==
+b?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.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 c=mxUtils.getOffset(a.container),b=0,f=0;null!=z&&(b=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=d&&e.chromelessResize(!1,null,b*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==b&&0==f||(a.container.scrollLeft-=b*(this.cumulativeZoomFactor-
-1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,d){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var b=mxEvent.getSource(c);null!=b;){if(b==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(d);mxEvent.consume(c);break}b=b.parentNode}}))};
+this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),d=0,f=0;null!=z&&(d=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=b&&e.chromelessResize(!1,null,d*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==d&&0==f||(a.container.scrollLeft-=d*(this.cumulativeZoomFactor-
+1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var d=mxEvent.getSource(c);null!=d;){if(d==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(b);mxEvent.consume(c);break}d=d.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 d=urlParams.border,e=60;null!=d&&(e=parseInt(d));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))};
+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))};
 EditorUi.prototype.isSelectionAllowed=function(a){return"SELECT"==mxEvent.getSource(a).nodeName||"INPUT"==mxEvent.getSource(a).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(a))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")};
-EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,d){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=d&&(this.editor.setFilename(d),this.updateDocumentTitle())}catch(b){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+b.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
-this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,d){this.currentMenuElt=d;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};
+EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=b&&(this.editor.setFilename(b),this.updateDocumentTitle())}catch(d){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+d.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
+this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,b){this.currentMenuElt=b;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};
 EditorUi.prototype.updateDocumentTitle=function(){var a=this.editor.getOrCreateFilename();null!=this.editor.appName&&(a+=" - "+this.editor.appName);document.title=a};EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(a){}};
-EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var d=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);d==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};
-EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var d=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==d?a+"?":a+"&",a+=e+"="+urlParams[e],d++;return a};
-EditorUi.prototype.setScrollbars=function(a){var d=this.editor.graph,e=d.container.style.overflow;d.scrollbars=a;this.editor.updateGraphComponents();e!=d.container.style.overflow&&("hidden"==d.container.style.overflow?(a=d.view.translate,d.view.setTranslate(a.x-d.container.scrollLeft/d.view.scale,a.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.minimumGraphSize=null,d.sizeDidChange()):(a=d.view.translate.x,e=d.view.translate.y,d.view.translate.x=0,d.view.translate.y=
-0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(a*d.view.scale),d.container.scrollTop-=Math.round(e*d.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars};
-EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var d=a.getPagePadding();a.container.scrollTop=Math.floor(d.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(d.x,(a.container.scrollWidth-a.container.clientWidth)/2))-
-1;d=a.getGraphBounds();0<d.width&&0<d.height&&(d.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(d.x+d.width-a.container.clientWidth,d.x-10)),d.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(d.y+d.height-a.container.clientHeight,d.y-10)))}else{var d=a.getGraphBounds(),e=Math.max(d.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,d.y-Math.max(20,(a.container.clientHeight-Math.max(d.height,
-a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,d.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(d=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-d.width)/2)-d.x),Math.floor(Math.max(0,(a.container.clientHeight-d.height)/2)-d.y))):(d=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-d.width)/2)-d.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight-
-d.height)/4))-d.y)))};
-EditorUi.prototype.setPageVisible=function(a){var d=this.editor.graph,e=mxUtils.hasScrollbars(d.container),b=0,h=0;e&&(b=d.view.translate.x*d.view.scale-d.container.scrollLeft,h=d.view.translate.y*d.view.scale-d.container.scrollTop);d.pageVisible=a;d.pageBreaksVisible=a;d.preferPageSize=a;d.view.validateBackground();e&&(a=d.getSelectionCells(),d.clearSelection(),d.setSelectionCells(a));d.sizeDidChange();e&&(d.container.scrollLeft=d.view.translate.x*d.view.scale-b,d.container.scrollTop=d.view.translate.y*
-d.view.scale-h);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,d,e,b){this.ui=a;this.previousColor=this.color=d;this.previousImage=this.image=e;this.previousFormat=this.format=b;this.ignoreImage=this.ignoreColor=!1}
-ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var d=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=d}this.ignoreImage||(this.image=this.previousImage,d=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=d);null!=this.previousFormat&&(this.format=this.previousFormat,d=a.pageFormat,this.previousFormat.width!=d.width||this.previousFormat.height!=d.height)&&(this.ui.setPageFormat(this.previousFormat),
-this.previousFormat=d);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);return b};mxCodecRegistry.register(a)})();
+EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var b=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);b==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};
+EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==b?a+"?":a+"&",a+=e+"="+urlParams[e],b++;return a};
+EditorUi.prototype.setScrollbars=function(a){var b=this.editor.graph,e=b.container.style.overflow;b.scrollbars=a;this.editor.updateGraphComponents();e!=b.container.style.overflow&&("hidden"==b.container.style.overflow?(a=b.view.translate,b.view.setTranslate(a.x-b.container.scrollLeft/b.view.scale,a.y-b.container.scrollTop/b.view.scale),b.container.scrollLeft=0,b.container.scrollTop=0,b.minimumGraphSize=null,b.sizeDidChange()):(a=b.view.translate.x,e=b.view.translate.y,b.view.translate.x=0,b.view.translate.y=
+0,b.sizeDidChange(),b.container.scrollLeft-=Math.round(a*b.view.scale),b.container.scrollTop-=Math.round(e*b.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars};
+EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var b=a.getPagePadding();a.container.scrollTop=Math.floor(b.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(b.x,(a.container.scrollWidth-a.container.clientWidth)/2))-
+1;b=a.getGraphBounds();0<b.width&&0<b.height&&(b.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(b.x+b.width-a.container.clientWidth,b.x-10)),b.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(b.y+b.height-a.container.clientHeight,b.y-10)))}else{var b=a.getGraphBounds(),e=Math.max(b.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,b.y-Math.max(20,(a.container.clientHeight-Math.max(b.height,
+a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,b.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(b=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-b.width)/2)-b.x),Math.floor(Math.max(0,(a.container.clientHeight-b.height)/2)-b.y))):(b=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-b.width)/2)-b.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight-
+b.height)/4))-b.y)))};
+EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),d=0,k=0;e&&(d=b.view.translate.x*b.view.scale-b.container.scrollLeft,k=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-d,b.container.scrollTop=b.view.translate.y*
+b.view.scale-k);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,b,e,d){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.ignoreImage=this.ignoreColor=!1}
+ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat),
+this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})();
 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"),d=this.actions.get("redo"),e=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());d.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,b);e.addListener(mxEvent.UNDO,b);e.addListener(mxEvent.REDO,b);e.addListener(mxEvent.CLEAR,b);var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);b()};var m=this.editor.graph.cellEditor.stopEditing;
-this.editor.graph.cellEditor.stopEditing=function(a,d){m.apply(this,arguments);b()};b()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,d=!a.isSelectionEmpty(),e=!1,b=!1,h=a.getSelectionCells();if(null!=h)for(var m=0;m<h.length;m++){var p=h[m];a.getModel().isEdge(p)&&(b=!0);a.getModel().isVertex(p)&&(e=!0);if(b&&e)break}h="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(m=
-0;m<h.length;m++)this.actions.get(h[m]).setEnabled(d);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(b);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);b=e&&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(d||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()));d=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(d);this.actions.get("collapse").setEnabled(d);
-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);d=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(d);this.menus.get("insert").setEnabled(d);this.menus.get("direction").setEnabled(d&&e);this.menus.get("align").setEnabled(d&&
-e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(d&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(d);this.actions.get("selectEdges").setEnabled(d);this.actions.get("selectAll").setEnabled(d);this.actions.get("selectNone").setEnabled(d);this.updatePasteActionStates()};
-EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var d=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,b=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,b=d?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var h=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&
-(h=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var m=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u=
-this.footerHeight+h,q=Math.max(0,Math.min(b-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=m+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=m+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"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+h+"px";this.hsplit.style.left=m+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);d?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width,
-d=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=d-q+"px",this.formatContainer.style.height=d+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-m-this.splitSize-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=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+h+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=h+"px"),this.diagramContainer.style.right=u+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+h+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+h+"px",this.formatContainer.style.bottom=
-this.footerHeight+h+"px",this.diagramContainer.style.bottom=this.footerHeight+h+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
+EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);d()};var l=this.editor.graph.cellEditor.stopEditing;
+this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);d()};d()};
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,k=a.getSelectionCells();if(null!=k)for(var l=0;l<k.length;l++){var p=k[l];a.getModel().isEdge(p)&&(d=!0);a.getModel().isVertex(p)&&(e=!0);if(d&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize 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("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);d=e&&1==
+a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&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,d=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,d=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 l=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u=
+this.footerHeight+k,q=Math.max(0,Math.min(d-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"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,d-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-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,d-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=u+"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"));
 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=
 "0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-2;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
@@ -2155,251 +2156,252 @@ EditorUi.prototype.createUi=function(){this.menubar=this.editor.chromeless?null:
 this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContainer);null!=this.sidebar&&this.container.appendChild(this.sidebarContainer);this.format=this.editor.chromeless||!this.formatEnabled?null:this.createFormat(this.formatContainer);null!=this.format&&this.container.appendChild(this.formatContainer);var a=this.editor.chromeless?null:this.createFooter();null!=a&&(this.footerContainer.appendChild(a),this.container.appendChild(this.footerContainer));null!=this.sidebar&&this.sidebarFooterContainer&&
 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 d=document.createElement("div");d.className=a;return d};
-EditorUi.prototype.addSplitHandler=function(a,d,e,b){function h(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,q+(d?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function m(a){h(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(d?a.style.left:a.style.bottom);d||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var d=null!=c?c-e:0;c=f();b(d);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,h,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,h,m)})};
-EditorUi.prototype.showDialog=function(a,d,e,b,h,m,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,d,e,b,h,m,p,q);this.dialogs.push(this.dialog)};
+EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
+EditorUi.prototype.addSplitHandler=function(a,b,e,d){function k(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function l(a){k(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var b=null!=c?c-e:0;c=f();d(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,d,k,l,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,k,l,p,q);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(),mxUtils.clearSelection(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
-EditorUi.prototype.pickColor=function(a,d){var e=this.editor.graph,b=e.cellEditor.saveSelection(),h=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),m=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(b);d(a)},function(){e.cellEditor.restoreSelection(b)});this.showDialog(m.container,230,h,!0,!1);m.init()};
+EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),k=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(l.container,230,k,!0,!1);l.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})};
-EditorUi.prototype.extractGraphModelFromHtml=function(a){var d=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var b=a.lastIndexOf("&lt;/mxGraphModel&gt;");b>e&&(d=a.substring(e,b+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(h){}return d};
-EditorUi.prototype.extractGraphModelFromEvent=function(a){var d=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&&
-(d=e);return d};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())};
-EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var d=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,d);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(d.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(d))).simulate(document,
-"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(d);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,d,e){var b=this.editor.graph;if(b.isEnabled()){b.getModel().beginUpdate();try{a()}catch(h){throw h;}finally{this.allowAnimation&&d&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(b),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){b.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(b.getModel().endUpdate(),null!=e&&e())}}};
-EditorUi.prototype.showImageDialog=function(a,d,e,b){b=this.editor.graph.cellEditor;var h=b.saveSelection(),m=mxUtils.prompt(a,d);b.restoreSelection(h);if(null!=m&&0<m.length){var p=new Image;p.onload=function(){e(m,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,d,e){a=new LinkDialog(this,a,d,e);this.showDialog(a.container,420,90,!0,!0);a.init()};
+EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("&lt;mxGraphModel ");if(0<=e){var d=a.lastIndexOf("&lt;/mxGraphModel&gt;");d>e&&(b=a.substring(e,d+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(k){}return b};
+EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&&
+(b=e);return b};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())};
+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 d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(k){throw k;}finally{this.allowAnimation&&b&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}};
+EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var k=d.saveSelection(),l=mxUtils.prompt(a,b);d.restoreSelection(k);if(null!=l&&0<l.length){var p=new Image;p.onload=function(){e(l,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.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.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(this,a),this.showDialog(a.container,340,340,!0,!1,null,!1),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=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=d&&0<d.length){var e=new Image;e.onload=function(){a(new mxImage(d,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=d}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,d,e){mxUtils.confirm(a)?null!=d&&d():null!=e&&e()};
-EditorUi.prototype.createOutline=function(a){var d=new mxOutline(this.editor.graph);d.border=20;mxEvent.addListener(window,"resize",function(){d.update()});this.addListener("pageFormatChanged",function(){d.update()});return d};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"};
-EditorUi.prototype.createKeyHandler=function(a){function d(a,c,d){p.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var f=b.getSelectionCells(),g=0;g<f.length;g++)if(b.getModel().isVertex(f[g])&&b.isCellResizable(f[g])){var e=b.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),b.getModel().setGeometry(f[g],e))}}finally{b.getModel().endUpdate()}}else f=
-b.getSelectionCell(),g=b.model.getParent(f),e=null,1==b.getSelectionCount()&&b.model.isVertex(f)&&null!=b.layoutManager&&!b.isCellLocked(f)&&(e=b.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?b.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||b.model.add(g,f,Math.min(b.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),b.moveCells(b.getMovableCells(b.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<
-p.length){b.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var e=this,b=this.editor.graph,h=new mxKeyHandler(b),m=h.isEventIgnored;h.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)};h.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};h.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=h.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&&
-mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=u[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(),u[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!=e.hoverIcons&&e.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return c.apply(this,arguments)};h.bindAction=mxUtils.bind(this,function(a,c,d,b){var f=this.actions.get(d);
-null!=f&&(d=function(){f.isEnabled()&&f.funct()},c?b?h.bindControlShiftKey(a,d):h.bindControlKey(a,d):b?h.bindShiftKey(a,d):h.bindKey(a,d))});var f=h.escape;h.escape=function(a){f.apply(this,arguments)};h.enter=function(){};h.bindControlShiftKey(36,function(){b.exitGroup()});h.bindControlShiftKey(35,function(){b.enterGroup()});h.bindKey(36,function(){b.home()});h.bindKey(35,function(){b.refresh()});h.bindAction(107,!0,"zoomIn");h.bindAction(109,!0,"zoomOut");h.bindAction(80,!0,"print");h.bindAction(79,
-!0,"outline",!0);h.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)h.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),h.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),h.bindControlKey(13,function(){b.isEnabled()&&b.setSelectionCells(b.duplicateCells(b.getSelectionCells(),!1))}),h.bindAction(8,!1,"delete"),h.bindAction(8,!0,"deleteAll"),h.bindAction(46,!1,"delete"),h.bindAction(46,!0,"deleteAll"),h.bindAction(72,!0,"resetView"),h.bindAction(72,
-!0,"fitWindow",!0),h.bindAction(74,!0,"fitPage"),h.bindAction(74,!0,"fitTwoPages",!0),h.bindAction(48,!0,"customZoom"),h.bindAction(82,!0,"turn"),h.bindAction(82,!0,"clearDefaultStyle",!0),h.bindAction(83,!0,"save"),h.bindAction(83,!0,"saveAs",!0),h.bindAction(65,!0,"selectAll"),h.bindAction(65,!0,"selectNone",!0),h.bindAction(73,!0,"selectVertices",!0),h.bindAction(69,!0,"selectEdges",!0),h.bindAction(69,!0,"editStyle"),h.bindAction(66,!0,"bold"),h.bindAction(66,!0,"toBack",!0),h.bindAction(70,!0,
-"toFront",!0),h.bindAction(68,!0,"duplicate"),h.bindAction(68,!0,"setAsDefaultStyle",!0),h.bindAction(90,!0,"undo"),h.bindAction(89,!0,"autosize",!0),h.bindAction(88,!0,"cut"),h.bindAction(67,!0,"copy"),h.bindAction(86,!0,"paste"),h.bindAction(71,!0,"group"),h.bindAction(77,!0,"editData"),h.bindAction(71,!0,"grid",!0),h.bindAction(73,!0,"italic"),h.bindAction(76,!0,"lockUnlock"),h.bindAction(76,!0,"layers",!0),h.bindAction(80,!0,"formatPanel",!0),h.bindAction(85,!0,"underline"),h.bindAction(85,!0,
-"ungroup",!0),h.bindAction(190,!0,"superscript"),h.bindAction(188,!0,"subscript"),h.bindKey(13,function(){b.isEnabled()&&b.startEditingAtCell()}),h.bindKey(113,function(){b.isEnabled()&&b.startEditingAtCell()});mxClient.IS_WIN?h.bindAction(89,!0,"redo"):h.bindAction(90,!0,"redo",!0);return h};
+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.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"};
+EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){p.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else f=
+d.getSelectionCell(),g=d.model.getParent(f),e=null,1==d.getSelectionCount()&&d.model.isVertex(f)&&null!=d.layoutManager&&!d.isCellLocked(f)&&(e=d.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?d.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||d.model.add(g,f,Math.min(d.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),d.moveCells(d.getMovableCells(d.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0<
+p.length){d.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{d.getModel().endUpdate()}d.scrollCellToVisible(d.getSelectionCell())}},200)}var e=this,d=this.editor.graph,k=new mxKeyHandler(d),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()&&(null==e.dialogs||0==e.dialogs.length)};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=k.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&&
+mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:function(){d.selectChildCell()};if(null!=u[a.keyCode]&&!d.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var c=d.connectVertex(d.getSelectionCell(),u[a.keyCode],d.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&&
+d.model.isEdge(c[0])?d.setSelectionCell(d.model.getTerminal(c[0],!1)):d.setSelectionCell(c[c.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return c.apply(this,arguments)};k.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b);
+null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?k.bindControlShiftKey(a,b):k.bindControlKey(a,b):d?k.bindShiftKey(a,b):k.bindKey(a,b))});var f=k.escape;k.escape=function(a){f.apply(this,arguments)};k.enter=function(){};k.bindControlShiftKey(36,function(){d.exitGroup()});k.bindControlShiftKey(35,function(){d.enterGroup()});k.bindKey(36,function(){d.home()});k.bindKey(35,function(){d.refresh()});k.bindAction(107,!0,"zoomIn");k.bindAction(109,!0,"zoomOut");k.bindAction(80,!0,"print");k.bindAction(79,
+!0,"outline",!0);k.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)k.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),k.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),k.bindControlKey(13,function(){d.isEnabled()&&d.setSelectionCells(d.duplicateCells(d.getSelectionCells(),!1))}),k.bindAction(8,!1,"delete"),k.bindAction(8,!0,"deleteAll"),k.bindAction(46,!1,"delete"),k.bindAction(46,!0,"deleteAll"),k.bindAction(72,!0,"resetView"),k.bindAction(72,
+!0,"fitWindow",!0),k.bindAction(74,!0,"fitPage"),k.bindAction(74,!0,"fitTwoPages",!0),k.bindAction(48,!0,"customZoom"),k.bindAction(82,!0,"turn"),k.bindAction(82,!0,"clearDefaultStyle",!0),k.bindAction(83,!0,"save"),k.bindAction(83,!0,"saveAs",!0),k.bindAction(65,!0,"selectAll"),k.bindAction(65,!0,"selectNone",!0),k.bindAction(73,!0,"selectVertices",!0),k.bindAction(69,!0,"selectEdges",!0),k.bindAction(69,!0,"editStyle"),k.bindAction(66,!0,"bold"),k.bindAction(66,!0,"toBack",!0),k.bindAction(70,!0,
+"toFront",!0),k.bindAction(68,!0,"duplicate"),k.bindAction(68,!0,"setAsDefaultStyle",!0),k.bindAction(90,!0,"undo"),k.bindAction(89,!0,"autosize",!0),k.bindAction(88,!0,"cut"),k.bindAction(67,!0,"copy"),k.bindAction(86,!0,"paste"),k.bindAction(71,!0,"group"),k.bindAction(77,!0,"editData"),k.bindAction(71,!0,"grid",!0),k.bindAction(73,!0,"italic"),k.bindAction(76,!0,"lockUnlock"),k.bindAction(76,!0,"layers",!0),k.bindAction(80,!0,"formatPanel",!0),k.bindAction(85,!0,"underline"),k.bindAction(85,!0,
+"ungroup",!0),k.bindAction(190,!0,"superscript"),k.bindAction(188,!0,"subscript"),k.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),k.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?k.bindAction(89,!0,"redo"):k.bindAction(90,!0,"redo",!0);return k};
 EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&&
 (mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,
-"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var d=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<d.length;a++)null!=d[a]&&null!=d[a].parentNode&&d[a].parentNode.removeChild(d[a])};"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(d){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
+"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;
+(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
 mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
-Graph=function(a,d,e,b,h){mxGraph.call(this,a,d,e,b);this.themes=h||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;d=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<d&&(d=a.indexOf("/",d+2),0<d&&(this.domainUrl=a.substring(0,d)),d=a.lastIndexOf("/"),0<d&&(this.domainPathUrl=a.substring(0,d+1)));this.isHtmlLabel=function(a){var c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);
-return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var m=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")&&this.isEnabled()){var b=d.getProperty("event");if(!mxEvent.isControlDown(b.getEvent())&&!mxEvent.isShiftDown(b.getEvent())){var f=b.getState();null!=f&&this.model.isEdge(f.cell)&&(m=new mxPoint(b.getGraphX(),b.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=b,null!=
-f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,b.getGraphX(),b.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(b))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,d){var b=this.selectionCellsHandler.handlers.map,f;for(f in b)if(null!=b[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&&
-!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isAltDown(d.getEvent()))if(f=this.tolerance,null!=m&&null!=q&&null!=p){if(b=q,Math.abs(m.x-d.getGraphX())>f||Math.abs(m.y-d.getGraphY())>f){this.isCellSelected(b.cell)||this.setSelectionCell(b.cell);var g=this.selectionCellsHandler.getHandler(b.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),k=this.view.getEdgeStyle(b);f=k==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
-null==b.visibleSourceState&&null==b.visibleTargetState||(this.graphHandler.reset(),d.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=b.visibleSourceState||e==g.bends.length-1||null!=b.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=b.absolutePoints,null!=f&&(null==k&&null==e||k==mxEdgeStyle.OrthConnector)&&(e=u,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!=k&&(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(b,m.x,m.y),e=null==k?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(d.getGraphX(),d.getGraphX(),e),u=m=p=q=null,c=!1,d.consume(),this.graphHandler.reset()}}}else if(b=d.getState(),null!=b&&this.model.isEdge(b.cell)){g=null;f=b.absolutePoints;if(null!=f)if(e=new mxRectangle(d.getGraphX(),
-d.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=b.text&&null!=b.text.boundingBox&&mxUtils.contains(b.text.boundingBox,d.getGraphX(),d.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!=b.visibleSourceState||null!=b.visibleTargetState)k=this.view.getEdgeStyle(b),g="crosshair",k!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(b)&&(k=mxUtils.findNearestSegment(b,d.getGraphX(),d.getGraphY()),
-k<f.length-1&&0<=k&&(g=0==Math.round(f[k].x-f[k+1].x)?"col-resize":"row-resize"));null!=g&&b.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=m=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
-this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],d=this.graph.pageFormat,b=this.graph.pageScale,g=d.width*b,d=d.height*b,b=this.graph.view.translate,e=this.graph.view.scale,k=this.graph.getPageLayout(),l=0;l<k.width;l++)c.push(new mxRectangle(((k.x+l)*g+b.x)*e,(k.y*d+b.y)*e,g*e,d*e));for(l=0;l<k.height;l++)c.push(new mxRectangle((k.x*g+b.x)*e,((k.y+l)*d+b.y)*e,g*e,d*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
-function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),d=[],b=0;b<c.length;b++){var f=this.graph.view.getState(c[b]),f=null!=f?f.style:this.graph.getCellStyle(c[b]);
-"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[b]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&d.push(f)):d.push(c[b])}return d};this.connectionHandler.createTargetVertex=function(a,c){var d=this.graph.view.getState(c),d=null!=d?d.style:this.graph.getCellStyle(c);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(c),this.graph.model.isVertex(d)&&(c=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this);
-this.getRubberband=function(){return g};var k=(new Date).getTime(),r=0,l=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;l.apply(this,arguments);a!=this.currentState?(k=(new Date).getTime(),r=0):r=(new Date).getTime()-k};var n=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
-"outlineConnect","1"))&&n.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.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 B=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
-(B=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=B)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this,
+Graph=function(a,b,e,d,k){mxGraph.call(this,a,b,e,d);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 c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a);
+return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var l=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event");if(!mxEvent.isControlDown(d.getEvent())&&!mxEvent.isShiftDown(d.getEvent())){var f=d.getState();null!=f&&this.model.isEdge(f.cell)&&(l=new mxPoint(d.getGraphX(),d.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=d,null!=
+f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,d.getGraphX(),d.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(d))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,f;for(f in d)if(null!=d[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!=l&&null!=q&&null!=p){if(d=q,Math.abs(l.x-b.getGraphX())>f||Math.abs(l.y-b.getGraphY())>f){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var g=this.selectionCellsHandler.getHandler(d.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),h=this.view.getEdgeStyle(d);f=h==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f||
+null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==g.bends.length-1||null!=d.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=d.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=u,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(d,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),u=l=p=q=null,c=!1,b.consume(),this.graphHandler.reset()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){g=null;f=d.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(),
+b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.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!=d.visibleSourceState||null!=d.visibleTargetState)h=this.view.getEdgeStyle(d),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(h=mxUtils.findNearestSegment(d,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&&d.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=l=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);
+this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
+function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,g=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,h=this.graph.getPageLayout(),n=0;n<h.width;n++)c.push(new mxRectangle(((h.x+n)*g+d.x)*e,(h.y*b+d.y)*e,g*e,b*e));for(n=0;n<h.height;n++)c.push(new mxRectangle((h.x*g+d.x)*e,((h.y+n)*b+d.y)*e,g*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
+function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),b=[],d=0;d<c.length;d++){var f=this.graph.view.getState(c[d]),f=null!=f?f.style:this.graph.getCellStyle(c[d]);
+"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[d]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&b.push(f)):b.push(c[d])}return b};this.connectionHandler.createTargetVertex=function(a,c){var b=this.graph.view.getState(c),b=null!=b?b.style:this.graph.getCellStyle(c);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(c),this.graph.model.isVertex(b)&&(c=b));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this);
+this.getRubberband=function(){return g};var n=(new Date).getTime(),r=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(n=(new Date).getTime(),r=0):r=(new Date).getTime()-n};var m=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&m.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.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 A=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&
+(A=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=A)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this,
 arguments);c=c?a.sourceState.cell:a.getCell();null!=c&&(c=this.getLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)))};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var t=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 t.apply(this,arguments)};this.selectRegion=function(a,c){var d=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(d,c);return d};this.getAllCells=function(a,c,d,b,f,g){g=null!=g?g:[];if(0<d||0<b){var e=this.getModel(),k=a+d,l=c+b;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var n=e.getChildCount(f),F=0;F<n;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!=
-t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=l&&t.y>=c&&t.x+t.width<=k&&g.push(r);this.getAllCells(a,c,d,b,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,d){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var d=c.getProperty("event").getState();H=null==d||this.isSelectionEmpty()||this.isCellSelected(d.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var d=
-c.getProperty("event"),b=c.getProperty("cell");null==b?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),g.start(d.x,d.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(b)&&this.removeSelectionCell(b);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,
+this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return t.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,c);return b};this.getAllCells=function(a,c,b,d,f,g){g=null!=g?g:[];if(0<b||0<d){var e=this.getModel(),h=a+b,n=c+d;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var m=e.getChildCount(f),F=0;F<m;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!=
+t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=n&&t.y>=c&&t.x+t.width<=h&&g.push(r);this.getAllCells(a,c,b,d,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();H=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b=
+c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&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 G=this.updateMouseEvent;this.updateMouseEvent=function(a){a=G.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};
 Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;
-Graph.createSvgImage=function(a,d,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="'+d+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,d)};mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;
+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.linkRelation="nofollow noopener noreferrer";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=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,h=!0,m=null,p=mxUtils.bind(this,function(a){h=!0;m=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){h=h&&null!=m&&Math.abs(m.x-mxEvent.getClientX(a))<d&&Math.abs(m.y-mxEvent.getClientY(a))<d}),u=mxUtils.bind(this,function(c){if(h)for(var d=mxEvent.getSource(c);null!=
-d&&d!=e.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
-(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,d,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,
-d,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var b=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,d,b,p,q,u);if(null!=g)return g;if(this.isCellVisible(b)&&(q&&this.model.isEdge(b)||p&&this.model.isVertex(b))&&(g=this.view.getState(b),null!=g&&(null==u||!u(g,a,d))&&this.intersects(g,a,d)))return b}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a=
-this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+d.x)*e,(a.y+d.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=
-function(d){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();
-if(null!=a)if(a=a.parentNode,this.useCssTransforms){var d=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(d!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage;
-mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,m=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=e,this.translate=m)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,d,m){var b=this.useCssTransforms,h=this.view.scale,u=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=
-!1);e.apply(this,arguments);b&&(this.view.scale=h,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,d,e){d=d.getAttribute("href");if(null!=d&&!this.isCustomLink(d)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(d)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(d),a);mxEvent.consume(e)}};
-Graph.prototype.openLink=function(a,d,e){var b=window;"_self"==d&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==d&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(b=window.open(a,d),null==b||e||(b.opener=null));return b};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};
+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,p=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}),u=mxUtils.bind(this,function(c){if(k)for(var b=mxEvent.getSource(c);null!=
+b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,c);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()};
+(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,b,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,
+b,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var d=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,b,d,p,q,u);if(null!=g)return g;if(this.isCellVisible(d)&&(q&&this.model.isEdge(d)||p&&this.model.isVertex(d))&&(g=this.view.getState(d),null!=g&&(null==u||!u(g,a,b))&&this.intersects(g,a,b)))return d}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a=
+this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*e,(a.y+b.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=
+function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();
+if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(b!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var b=mxGraphView.prototype.validateBackgroundPage;
+mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,l=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);b.apply(this,arguments);a&&(this.scale=e,this.translate=l)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,l){var d=this.useCssTransforms,k=this.view.scale,u=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=
+!1);e.apply(this,arguments);d&&(this.view.scale=k,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}};
+Graph.prototype.openLink=function(a,b,e){var d=window;"_self"==b&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(d=window.open(a,b),null==d||e||(d.opener=null));return d};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)};
 Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)};
 Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)};
-Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var d=this.graph.view.getState(a);a=null!=d?d.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(d=new mxStackLayout(this.graph,!0),d.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),d.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.resizeLast="1"==mxUtils.getValue(a,
-"resizeLast","0"),d.spacing=a.stackSpacing||d.spacing,d.border=a.stackBorder||d.border,d.marginLeft=a.marginLeft||0,d.marginRight=a.marginRight||0,d.marginTop=a.marginTop||0,d.marginBottom=a.marginBottom||0,d.fill=!0,d):"treeLayout"==a.childLayout?(d=new mxCompactTreeLayout(this.graph),d.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.groupPadding=mxUtils.getValue(a,"parentPadding",20),d.levelDistance=mxUtils.getValue(a,"treeLevelDistance",
-30),d.maintainParentLocation=!0,d.edgeRouting=!1,d.resetEdges=!1,d):"flowLayout"==a.childLayout?(d=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.parentBorder=mxUtils.getValue(a,"parentPadding",20),d.maintainParentLocation=!0,d.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),d.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing",
-mxHierarchicalLayout.prototype.interRankCellSpacing),d.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),d.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),d):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(),d=this.getGraphBounds();if(0==d.width||0==d.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(d.x/this.view.scale-this.view.translate.x),b=Math.ceil(d.y/this.view.scale-this.view.translate.y),h=Math.floor(e/a.width),m=Math.floor(b/a.height);return new mxRectangle(h,m,Math.ceil((e+Math.floor(d.width/this.view.scale))/a.width)-h,Math.ceil((b+Math.floor(d.height/this.view.scale))/a.height)-m)};
-Graph.prototype.sanitizeHtml=function(a,d){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,d;for(d in this.model.cells){var e=this.model.cells[d];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.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a);a=null!=b?b.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(b=new mxStackLayout(this.graph,!0),b.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),b.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.resizeLast="1"==mxUtils.getValue(a,
+"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),d=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),l=Math.floor(d/a.height);return new mxRectangle(k,l,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((d+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.isMetaDown(a)&&mxClient.IS_MAC||mxEvent.isControlDown(a)&&!mxClient.IS_MAC};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,d,e){return!this.model.isEdge(d[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var d=mxGraph.prototype.getLabel.apply(this,arguments);null!=d&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(d=this.replacePlaceholders(a,d));return d};
-Graph.prototype.isLabelMovable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(d,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))};
-Graph.prototype.getGlobalVariable=function(a){var d=null;"date"==a?d=(new Date).toLocaleDateString():"time"==a?d=(new Date).toLocaleTimeString():"timestamp"==a?d=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),d=this.formatDate(new Date,a));return d};
-Graph.prototype.formatDate=function(a,d,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 b=this.dateFormatCache,h=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
-/\d/.test(a)||(d=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");d=String(b.masks[d]||d||b.masks["default"]);"UTC:"==d.slice(0,4)&&(d=d.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),k=a[q+"Hours"](),r=a[q+"Minutes"](),l=a[q+"Seconds"](),q=a[q+"Milliseconds"](),n=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:b.i18n.dayNames[c],dddd:b.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:b.i18n.monthNames[f],mmmm:b.i18n.monthNames[f+
-12],yy:String(g).slice(2),yyyy:g,h:k%12||12,hh:p(k%12||12),H:k,HH:p(k),M:r,MM:p(r),s:l,ss:p(l),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(h)||[""]).pop().replace(m,""),o:(0<n?"-":"+")+p(100*Math.floor(Math.abs(n)/60)+Math.abs(n)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return d.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1,
+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 d=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,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)||
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),n=a[q+"Hours"](),r=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),m=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:d.i18n.dayNames[c],dddd:d.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:d.i18n.monthNames[f],mmmm:d.i18n.monthNames[f+
+12],yy:String(g).slice(2),yyyy:g,h:n%12||12,hh:p(n%12||12),H:n,HH:p(n),M:r,MM:p(r),s:h,ss:p(h),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(l,""),o:(0<m?"-":"+")+p(100*Math.floor(Math.abs(m)/60)+Math.abs(m)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return b.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 d=this.getModel(),e=d.getChildCount(d.root),b=0;b<e;b++)mxUtils.bind(this,function(b){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var h=document.createElement("input");h.style.display="inline-block";h.setAttribute("type","checkbox");d.isVisible(b)&&(h.setAttribute("checked","checked"),
-h.defaultChecked=!0);e.appendChild(h);var q=this.convertValueToString(b)||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(h,"click",function(){null!=h.getAttribute("checked")?h.removeAttribute("checked"):h.setAttribute("checked","checked");d.setVisible(b,h.checked)})})(d.getChildAt(d.root,b));return a};
-Graph.prototype.replacePlaceholders=function(a,d){var e=[];if(null!=d){for(var b=0;match=this.placeholderPattern.exec(d);){var h=match[0];if(2<h.length&&"%label%"!=h&&"%tooltip%"!=h){var m=null;if(match.index>b&&"%"==d.charAt(match.index-1))m=h.substring(1);else{var p=h.substring(1,h.length-1);if(0>p.indexOf("{"))for(var q=a;null==m&&null!=q;)null!=q.value&&"object"==typeof q.value&&(m=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==m&&(m=this.getGlobalVariable(p))}e.push(d.substring(b,
-match.index)+(null!=m?m:h));b=match.index+h.length}}e.push(d.substring(b))}return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,d,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(d)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
-Graph.prototype.connectVertex=function(a,d,e,b,h,m){m=m?m:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);d==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):d==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=d==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
-var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(b)&&!h?null:this.getCellAt(c+p.x*q,u+p.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(h=!mxEvent.isShiftDown(b)||h)d==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:d==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=d==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.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&&h){for(var c=a,f=this.getCellGeometry(a);null!=
-f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),k=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(k,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var l=mxEvent.isControlDown(b)&&h||null==m&&null!=f&&f.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=l.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==l.parent&&(n=b.parent.getIndex(b),this.model.add(b.parent,l,n))}null==m&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&d==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
-q,n));null!=l&&e.push(l);null==m&&null!=q&&e.push(q);null==q&&null!=l&&l.geometry.setTerminalPoint(p,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}return e};
-Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),d=[],e,b;for(b in this.model.cells)if(e=this.model.cells[b],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&&d.push(e);return d.join(" ")};
-Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var d=a.getAttribute("placeholder"),e=a,b=null;null==b&&null!=e;)null!=e.value&&"object"==typeof e.value&&(b=e.hasAttribute(d)?null!=e.getAttribute(d)?e.getAttribute(d):"":null),e=this.model.getParent(e);return b||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
+Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),e=b.getChildCount(b.root),d=0;d<e;d++)mxUtils.bind(this,function(d){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(d)&&(k.setAttribute("checked","checked"),
+k.defaultChecked=!0);e.appendChild(k);var q=this.convertValueToString(d)||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(d,k.checked)})})(b.getChildAt(b.root,d));return a};
+Graph.prototype.replacePlaceholders=function(a,b){var e=[];if(null!=b){for(var d=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var l=null;if(match.index>d&&"%"==b.charAt(match.index-1))l=k.substring(1);else{var p=k.substring(1,k.length-1);if(0>p.indexOf("{"))for(var q=a;null==l&&null!=q;)null!=q.value&&"object"==typeof q.value&&(l=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==l&&(l=this.getGlobalVariable(p))}e.push(b.substring(d,
+match.index)+(null!=l?l:k));d=match.index+k.length}}e.push(b.substring(d))}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,d,k,l){l=l?l:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):b==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a));
+var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);l=l||mxEvent.isControlDown(d)&&!k?null:this.getCellAt(c+p.x*q,u+p.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(d)||k)b==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2;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 c=a,f=this.getCellGeometry(a);null!=
+f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),n=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(n,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(d)&&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 m=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=h.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==h.parent&&(m=d.parent.getIndex(d),this.model.add(d.parent,h,m))}null==l&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(m=a.parent.getIndex(a),this.model.add(a.parent,
+q,m));null!=h&&e.push(h);null==l&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(p,!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,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.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,d=null;null==d&&null!=e;)null!=e.value&&"object"==typeof e.value&&(d=e.hasAttribute(b)?null!=e.getAttribute(b)?e.getAttribute(b):"":null),e=this.model.getParent(e);return d||""}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 d=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&&(d[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return d};
-Graph.prototype.updateAlternateBounds=function(a,d,e){if(null!=a&&null!=d&&null!=this.layoutManager&&null!=d.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?d.alternateBounds.height=0:d.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,d,e,b,h){d=null!=d?d:!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 p=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[m]),g=this.layoutManager.getLayout(f);
-null==g?null!=h&&this.isMoveCellsEvent(h)&&this.moveSiblings(p,f,u,c):null!=h&&mxEvent.isAltDown(h)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
-Graph.prototype.moveSiblings=function(a,d,e,b){this.model.beginUpdate();try{var h=this.getCellsBeyond(a.x,a.y,d,!0,!0);for(d=0;d<h.length;d++)if(h[d]!=a.cell){var m=this.view.getState(h[d]),p=this.getCellGeometry(h[d]);null!=m&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(h[d],p))}}finally{this.model.endUpdate()}};
-Graph.prototype.resizeParentStacks=function(a,d,e,b){if(null!=this.layoutManager&&null!=d&&d.constructor==mxStackLayout&&!d.resizeLast){this.model.beginUpdate();try{for(var h=d.horizontal;null!=a&&null!=d&&d.constructor==mxStackLayout&&d.horizontal==h&&!d.resizeLast;){var m=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=m&&(m=m.clone(),d.horizontal?m.width+=e+Math.min(0,p.width/this.view.scale-m.width):m.height+=b+Math.min(0,p.height/this.view.scale-m.height),this.model.setGeometry(a,
-m));a=this.model.getParent(a);d=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=d.container:"1"==d.container};Graph.prototype.isCellConnectable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return null!=d.connectable?"0"!=d.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,d,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,d,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)};
-Graph.prototype.isCellFoldable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=d.collapsible||!this.isContainer(a)&&"1"==d.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};
-Graph.prototype.zoom=function(a,d){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)};
-Graph.prototype.getTooltipForCell=function(a){var d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),d=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&e.push("link");for(var h=0;h<a.length;h++)0>mxUtils.indexOf(e,a[h].nodeName)&&0<a[h].nodeValue.length&&b.push({name:a[h].nodeName,value:a[h].nodeValue});b.sort(function(a,d){return a.name<d.name?
--1:a.name>d.name?1:0});for(h=0;h<b.length;h++)"link"==b[h].name&&this.isCustomLink(b[h].value)||(d+=("link"!=b[h].name?"<b>"+b[h].name+":</b> ":"")+mxUtils.htmlEntities(b[h].value)+"\n");0<d.length&&(d=d.substring(0,d.length-1),mxClient.IS_SVG&&(d='<div style="max-width:360px;">'+d+"</div>"))}}return d};Graph.prototype.stringToBytes=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=a.charCodeAt(e);return d};
-Graph.prototype.bytesToString=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);return d.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};
-Graph.prototype.zapGremlins=function(a){for(var d=[],e=0;e<a.length;e++){var b=a.charCodeAt(e);(32<=b||9==b||10==b||13==b)&&d.push(a.charAt(e))}return d.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";
-HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
-HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
-HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
-HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":
-IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
+Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b};
+Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
+Graph.prototype.foldCells=function(a,b,e,d,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 p=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[l]),g=this.layoutManager.getLayout(f);
+null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(p,f,u,c):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
+Graph.prototype.moveSiblings=function(a,b,e,d){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]),p=this.getCellGeometry(k[b]);null!=l&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(k[b],p))}}finally{this.model.endUpdate()}};
+Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var l=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,p.width/this.view.scale-l.width):l.height+=d+Math.min(0,p.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)};
+Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&e.push("link");for(var k=0;k<a.length;k++)0>mxUtils.indexOf(e,a[k].nodeName)&&0<a[k].nodeValue.length&&d.push({name:a[k].nodeName,value:a[k].nodeValue});d.sort(function(a,b){return a.name<b.name?
+-1:a.name>b.name?1:0});for(k=0;k<d.length;k++)"link"==d[k].name&&this.isCustomLink(d[k].value)||(b+=("link"!=d[k].name?"<b>"+d[k].name+":</b> ":"")+mxUtils.htmlEntities(d[k].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b};
+Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};
+Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],e=0;e<a.length;e++){var d=a.charCodeAt(e);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(e))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;
+HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";
+HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);
+HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);
+HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
+HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+
+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
 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(d){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||
-!mxEvent.isTouchEvent(d.getEvent())||this.graph.model.isVertex(d.getCell())||this.reset()});var d=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,b){d=!1;var e=b.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(b.getState());null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,b){var e=b.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
-this.update(this.getState(b.getState()),b.getGraphX(),b.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(d=!0)}),mouseUp:mxUtils.bind(this,function(a,b){var e=b.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!d&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),b):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(b.getGraphX(),b.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,b.getGraphX(),b.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();d=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,d){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)};
-HoverIcons.prototype.createArrow=function(a,d){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline":
-"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=d&&e.setAttribute("title",d);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y),
+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,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(d.getState());null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||
+this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!b&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),d):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(d.getGraphX(),d.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,d.getGraphX(),d.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)};
+HoverIcons.prototype.createArrow=function(a,b){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline":
+"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=b&&e.setAttribute("title",b);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y),
 this.activeArrow=e,this.setDisplay("none"),mxEvent.consume(a))}));mxEvent.redirectMouseEvents(e,this.graph,this.currentState);mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isMouseEvent(a)&&(null!=this.activeArrow&&this.activeArrow!=e&&mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.graph.connectionHandler.constraintHandler.reset(),mxUtils.setOpacity(e,100),this.activeArrow=e)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){this.graph.isMouseDown||
 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 d=0;d<this.elts.length;d++)null!=this.elts[d]&&a(this.elts[d])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(d){d.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
-HoverIcons.prototype.drag=function(a,d,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,d,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=d&&d.setHandlesVisible(!1),d=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=d&&"orthogonalEdgeStyle"===
-mxUtils.getValue(d.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),d.cell.style=mxUtils.setStyle(d.cell.style,"sourcePortConstraint",a),d.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,d,e){return this.graph.view.getState(this.graph.getCellAt(d,e))};
-HoverIcons.prototype.click=function(a,d,e){var b=e.getEvent(),h=e.getGraphX(),m=e.getGraphY(),h=this.getStateAt(a,h,m);null==h||!this.graph.model.isEdge(h.cell)||mxEvent.isControlDown(b)||h.getVisibleTerminalState(!0)!=a&&h.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,d,this.graph.defaultEdgeLength,b),this.graph.selectCellsForConnectVertex(a,b,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(b)?this.update(this.getState(this.graph.view.getState(a[1]))):
-this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(h.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.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,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"===
+mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};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 d=e.getEvent(),k=e.getGraphX(),l=e.getGraphY(),k=this.getStateAt(a,k,l);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(d)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,d),this.graph.selectCellsForConnectVertex(a,d,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(d)?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 d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=d&&(a.x-=d.horizontalOffset/2,a.y-=d.verticalOffset/2,a.width+=d.horizontalOffset,a.height+=d.verticalOffset,null!=d.rotationShape&&null!=d.rotationShape.node&&"hidden"!=d.rotationShape.node.style.visibility&&"none"!=d.rotationShape.node.style.display&&null!=d.rotationShape.boundingBox&&a.add(d.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+
+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 d=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()),b=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!=d&&d==e&&e==b&&b==a&&(a=b=e=d=null);var h=this.graph.getCellGeometry(this.currentState.cell),m=mxUtils.bind(this,function(a,d){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==b||null==h||b.height<6*h.height&&b.width<6*h.width)?d.style.visibility="hidden":d.style.visibility="visible"});
-m(d,this.arrowRight);m(e,this.arrowLeft);m(b,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",
+"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()),d=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==d&&d==a&&(a=d=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),l=mxUtils.bind(this,function(a,b){var d=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==d||null==k||d.height<6*k.height&&d.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"});
+l(b,this.arrowRight);l(e,this.arrowLeft);l(d,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(d){null!=d.parentNode&&(d=new mxRectangle(d.offsetLeft,d.offsetTop,d.offsetWidth,d.offsetHeight),null==a?a=d:a.add(d))});return a};
-HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var d=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(a=d)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a};
-HoverIcons.prototype.update=function(a,d,e){if(this.graph.connectionArrowsEnabled){var b=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,b=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,d,e))}),this.updateDelay+10))):null!=this.startTime&&(b=(new Date).getTime()-this.startTime);
-this.setDisplay("");null!=this.currentState&&this.currentState!=a&&b<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,d,e)?this.reset(!1):(null!=this.currentState||b>this.activationDelay)&&this.currentState!=a&&(b>this.updateDelay&&null!=a||null==this.bbox||null==d||null==e||!mxUtils.contains(this.bbox,d,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):
+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};
+HoverIcons.prototype.update=function(a,b,e){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,e))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-this.startTime);
+this.setDisplay("");null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,e)?this.reset(!1):(null!=this.currentState||d>this.activationDelay)&&this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==e||!mxUtils.contains(this.bbox,b,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):
 this.reset())}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 d=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){var b=this.getState(a);null!=b&&this.graph.model.isEdge(b.cell)&&null!=b.style&&1!=b.style[mxConstants.STYLE_CURVED]&&!b.invalid&&this.updateLineJumps(b)&&this.graph.cellRenderer.redraw(b,!1,this.isRendering());b=d.apply(this,arguments);null!=
-b&&this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(b);return b};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.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 c=a.absolutePoints;if(Graph.lineJumpsEnabled){var d=null!=a.routedPoints,b=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,d,f){var e=new mxPoint(d,f);e.type=c;b.push(e);e=null!=a.routedPoints?a.routedPoints[b.length-1]:null;return null==e||e.type!=c||e.x!=d||e.y!=f},r=.5*this.scale,d=!1,b=[],l=0;l<c.length-1;l++){for(var n=c[l+1],w=c[l],v=[],h=c[l+2];l<
-c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,h.x,h.y,n.x,n.y)<1*this.scale*this.scale;)n=h,l++,h=c[l+2];for(var d=e(0,w.x,w.y)||d,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var m=q[t+1],p=q[t],h=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,h.x,h.y,m.x,m.y)<1*this.scale*this.scale;)m=h,t++,h=q[t+2];h=mxUtils.intersection(w.x,w.y,n.x,n.y,p.x,p.y,m.x,m.y);if(null!=h&&(Math.abs(h.x-
-p.x)>r||Math.abs(h.y-p.y)>r)&&(Math.abs(h.x-m.x)>r||Math.abs(h.y-m.y)>r)){m=h.x-w.x;p=h.y-w.y;h={distSq:m*m+p*p,x:h.x,y:h.y};for(m=0;m<v.length;m++)if(v[m].distSq>h.distSq){v.splice(m,0,h);h=null;break}null==h||0!=v.length&&v[v.length-1].x===h.x&&v[v.length-1].y===h.y||v.push(h)}}}for(t=0;t<v.length;t++)d=e(1,v[t].x,v[t].y)||d}h=c[c.length-1];d=e(0,h.x,h.y)||d}a.routedPoints=b;return d}return!1};var h=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,d){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)h.apply(this,arguments);else{var b=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"),l,n=!0,w=null,v=null;l=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t=
-this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var m=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(m=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),l.push(m),this.addPoints(a,l,d,b,!1,
-null,n),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,n=!1,"sharp"==e?(a.lineTo(m.x-q.y*l,m.y+q.x*l),a.lineTo(t.x-q.y*l,t.y+q.x*l),a.lineTo(t.x,t.y)):"arc"==e?(l*=1.3,a.curveTo(m.x-q.y*l,m.y+q.x*l,t.x-q.y*l,t.y+q.x*l,t.x,t.y)):(a.moveTo(t.x,t.y),n=!0),l=[t],m=!0))}else q=null;m||(l.push(z),w=z)}this.addPoints(a,l,d,b,!1,null,n);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,d,b){if(null==c||null==
-a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{c=this.getTerminalPort(a,c,b);var f=this.getNextPoint(a,d,b),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var h=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,h,v,n);h=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);h+=parseFloat(a.style[b?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
-0);f=this.getPerimeterPoint(c,f,0==g&&e,h);0!=g&&(h=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,h,v,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,d,b,f),b)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,d,b,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);b=d=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==b||k<b)d=g,b=k}}null!=d&&(e=d)}return e};
-var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,d){var b=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=d.state&&(b=d.state.view.graph.replacePlaceholders(d.state.cell,b));return b};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var d=
-c.substring(8,c.length-1),b=mxUtils.parseXml(a.view.graph.decompress(d));return new mxShape(new mxStencil(b.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
-mxStencilRegistry.getStencil=function(a){var d=mxStencilRegistry.stencils[a];if(null==d&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){d=mxStencilRegistry.libraries[e];if(null!=d){if(null==mxStencilRegistry.packages[e]){for(var b=0;b<d.length;b++){var h=d[b];if(".xml"==h.toLowerCase().substring(h.length-4,h.length))mxStencilRegistry.loadStencilSet(h,null);else if(".js"==h.toLowerCase().substring(h.length-3,h.length))try{if(mxStencilRegistry.allowEval){var m=
-mxUtils.load(h);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(p){null!=window.console&&console.log("error in getStencil:",h,p)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);d=mxStencilRegistry.stencils[a]}}return d};
-mxStencilRegistry.getBasenameForStencil=function(a){var d=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var d=a[1],e=2;e<a.length-1;e++)d+="/"+a[e];return d};
-mxStencilRegistry.loadStencilSet=function(a,d,e,b){var h=mxStencilRegistry.packages[a];if(null!=e&&e||null==h){var m=!1;if(null==h)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,m=!0,mxStencilRegistry.parseStencilSet(b.documentElement,d,m))}));return}h=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=h;m=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}null!=h&&null!=
-h.documentElement&&mxStencilRegistry.parseStencilSet(h.documentElement,d,m)}};mxStencilRegistry.loadStencil=function(a,d){if(null!=d)mxUtils.get(a,mxUtils.bind(this,function(a){d(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var d=0;d<a.length;d++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[d]).documentElement)};
-mxStencilRegistry.parseStencilSet=function(a,d,e){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,d,e),b=b.nextSibling;else{e=null!=e?e:!0;var b=a.firstChild,h="";a=a.getAttribute("name");for(null!=a&&(h=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var h=h.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(h+m.toLowerCase(),new mxStencil(b));if(null!=d){var p=b.getAttribute("w"),
-q=b.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);d(h,m,a,p,q)}}b=b.nextSibling}}};
+(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){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=b.apply(this,arguments);null!=
+d&&this.graph.model.isEdge(d.cell)&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var d=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){d.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&&
+this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=c||e.x!=b||e.y!=f},r=.5*this.scale,b=!1,d=[],h=0;h<c.length-1;h++){for(var m=c[h+1],w=c[h],v=[],k=c[h+2];h<
+c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,k.x,k.y,m.x,m.y)<1*this.scale*this.scale;)m=k,h++,k=c[h+2];for(var b=e(0,w.x,w.y)||b,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var l=q[t+1],p=q[t],k=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,k.x,k.y,l.x,l.y)<1*this.scale*this.scale;)l=k,t++,k=q[t+2];k=mxUtils.intersection(w.x,w.y,m.x,m.y,p.x,p.y,l.x,l.y);if(null!=k&&(Math.abs(k.x-
+p.x)>r||Math.abs(k.y-p.y)>r)&&(Math.abs(k.x-l.x)>r||Math.abs(k.y-l.y)>r)){l=k.x-w.x;p=k.y-w.y;k={distSq:l*l+p*p,x:k.x,y:k.y};for(l=0;l<v.length;l++)if(v[l].distSq>k.distSq){v.splice(l,0,k);k=null;break}null==k||0!=v.length&&v[v.length-1].x===k.x&&v[v.length-1].y===k.y||v.push(k)}}}for(t=0;t<v.length;t++)b=e(1,v[t].x,v[t].y)||b}k=c[c.length-1];b=e(0,k.x,k.y)||b}a.routedPoints=d;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints=
+null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,m=!0,w=null,v=null;h=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t=
+this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var l=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(l=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),h.push(l),this.addPoints(a,h,b,d,!1,
+null,m),h=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,m=!1,"sharp"==e?(a.lineTo(l.x-q.y*h,l.y+q.x*h),a.lineTo(t.x-q.y*h,t.y+q.x*h),a.lineTo(t.x,t.y)):"arc"==e?(h*=1.3,a.curveTo(l.x-q.y*h,l.y+q.x*h,t.x-q.y*h,t.y+q.x*h,t.x,t.y)):(a.moveTo(t.x,t.y),m=!0),h=[t],l=!0))}else q=null;l||(h.push(z),w=z)}this.addPoints(a,h,b,d,!1,null,m);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null==
+a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var k=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,k,v,m);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
+0);f=this.getPerimeterPoint(c,f,0==g&&e,k);0!=g&&(k=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,k,v,m));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var n=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||n<d)b=g,d=n}}null!=b&&(e=b)}return e};
+var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var b=
+c.substring(8,c.length-1),d=mxUtils.parseXml(a.view.graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(n){null!=window.console&&console.log("Error in shape: "+n)}}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 d=0;d<b.length;d++){var k=b[d];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(p){null!=window.console&&console.log("error in getStencil:",k,p)}}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,d){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var l=!1;if(null==k)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,l=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,l))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;l=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}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 d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var k=k.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+l.toLowerCase(),new mxStencil(d));if(null!=b){var p=d.getAttribute("w"),
+q=d.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);b(k,l,a,p,q)}}d=d.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="#29b6f2";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=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var d=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)||
-d.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));
-for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var b=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=b.apply(this,arguments),c=a.getCell;
-a.getCell=mxUtils.bind(this,function(a){var d=c.apply(this,arguments);this.error=null;return d});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(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&&
+"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;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));
+for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments),c=a.getCell;
+a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(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,c,d,b){c=null!=c?c:0;d=null!=d?d:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},k=0;k<a;k++){var l=e.getChildAt(e.getRoot(),k);if(1!=a||this.isCellLocked(this.getDefaultParent()))l=this.importCells([l],0,0,this.model.getRoot(),null,g)[0],n=this.model.getChildren(l),this.moveCells(n,c,d),f=f.concat(n);else var n=
-e.getChildren(l),f=f.concat(this.importCells(n,c,d,this.getDefaultParent(),null,g))}if(b){this.isGridEnabled()&&(c=this.snap(c),d=this.snap(d));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,d-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var d=mxUtils.getValue(a.style,"points",null);if(null!=d){var b=[];try{for(var f=JSON.parse(d),d=0;d<f.length;d++){var e=f[d];b.push(new mxConnectionConstraint(new mxPoint(e[0],
-e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return b}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 c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,
-this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),d=0,b=0;b<c;b++){var f=this.model.getChildAt(a,b);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||d++)}return 0<d||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,
-arguments)&&"0"!=mxUtils.getValue(c,"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 c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);null!=d&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=
-function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),d=[];c.beginUpdate();try{for(var b=0;b<a.length;b++){var f=a[b];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var k=c.getGeometry(f);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();
-var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);c.setGeometry(f,k);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,h=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,h);this.setConnectionConstraint(f,g,!1,F)}d.push(f)}}else if(c.isVertex(f)&&(k=this.getCellGeometry(f),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
-2;k.y+=k.height/2-k.width/2;var v=k.width;k.width=k.height;k.height=v;c.setGeometry(f,k);var q=this.view.getState(f);if(null!=q){var w=q.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])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==
-a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};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 c=this.model.getDescendants(a.cell);if(0<c.length)for(var d=0;d<c.length;d++){var b=this.view.getState(c[d]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(c[d]):this.isReplacePlaceholders(c[d])&&
-this.view.invalidate(c[d],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var d=a.ownerDocument.createElement(null!=c?c:"span"),b=Array.prototype.slice.call(a.attributes);attr=b.pop();)d.setAttribute(attr.nodeName,attr.nodeValue);d.innerHTML=a.innerHTML;a.parentNode.replaceChild(d,a)};Graph.prototype.updateLabelElements=function(a,c,d){a=null!=a?a:this.getSelectionCells();for(var b=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);
-if(null!=e&&0<e.length){b.innerHTML=e;for(var g=b.getElementsByTagName(null!=d?d:"*"),k=0;k<g.length;k++)c(g[k]);b.innerHTML!=e&&this.cellLabelChanged(a[f],b.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,d){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&
-f.hasAttribute(b)){this.setAttributeForCell(f,b,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(var b=[],d=0;d<a.length;d++){var f=this.model.getParent(a[d]);null==f||c.get(f)||(c.put(f,!0),b.push(f))}for(d=0;d<b.length;d++)if(f=this.view.getState(b[d]),
+Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},h=0;h<a;h++){var n=e.getChildAt(e.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))n=this.importCells([n],0,0,this.model.getRoot(),null,g)[0],m=this.model.getChildren(n),this.moveCells(m,c,b),f=f.concat(m);else var m=
+e.getChildren(n),f=f.concat(this.importCells(m,c,b,this.getDefaultParent(),null,g))}if(d){this.isGridEnabled()&&(c=this.snap(c),b=this.snap(b));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,b-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0],
+e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return d}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 c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL,
+this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var f=this.model.getChildAt(a,d);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 c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,
+arguments)&&"0"!=mxUtils.getValue(c,"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 c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell=
+function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),b=[];c.beginUpdate();try{for(var d=0;d<a.length;d++){var f=a[d];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse();
+var n=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);h.setTerminalPoint(n,!1);h.setTerminalPoint(m,!0);c.setGeometry(f,h);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,k=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,k);this.setConnectionConstraint(f,g,!1,F)}b.push(f)}}else if(c.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 v=h.width;h.width=h.height;h.height=v;c.setGeometry(f,h);var q=this.view.getState(f);if(null!=q){var w=q.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{c.endUpdate()}return b};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"==
+a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};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 c=this.model.getDescendants(a.cell);if(0<c.length)for(var b=0;b<c.length;b++){var d=this.view.getState(c[b]);null!=d&&null!=d.shape&&null!=d.shape.stencil&&this.stencilHasPlaceholders(d.shape.stencil)?this.removeStateForCell(c[b]):this.isReplacePlaceholders(c[b])&&
+this.view.invalidate(c[b],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]);
+if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),h=0;h<g.length;h++)c(g[h]);d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&&
+f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var d=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}for(b=0;b<d.length;b++)if(f=this.view.getState(d[b]),
 null!=f&&(this.model.isEdge(f.cell)||this.model.isVertex(f.cell))&&this.isCellDeletable(f.cell)){var e=mxUtils.getValue(f.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),g=mxUtils.getValue(f.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);if(e==mxConstants.NONE&&g==mxConstants.NONE){e=!0;for(g=0;g<this.model.getChildCount(f.cell)&&e;g++)c.get(this.model.getChildAt(f.cell,g))||(e=!1);e&&a.push(f.cell)}}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=
-function(a){for(var c=[],d=0;d<a.length;d++)if(this.isCellDeletable(a[d])){var b=this.view.getState(a[d]);if(null!=b){var f=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&b==mxConstants.NONE&&c.push(a[d])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=
-function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,d){var b;null!=a.value&&"object"==typeof a.value?b=a.value.cloneNode(!0):(b=mxUtils.createXmlDocument().createElement("UserObject"),b.setAttribute("label",a.value||""));null!=d&&0<d.length?b.setAttribute(c,d):b.removeAttribute(c);this.model.setValue(a,b)};Graph.prototype.getDropTarget=function(a,c,d,b){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;
-return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var d=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var b=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=b||this.firstClickSource!=
-f||null!=b&&null!=b.text&&null!=b.text.node&&(mxUtils.contains(b.text.boundingBox,d.x,d.y)||mxUtils.isAncestorNode(b.text.node,mxEvent.getSource(a)))||(null!=b||this.isCellLocked(this.getDefaultParent()))&&(null==b||this.isCellLocked(b.cell))||!(null!=b||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(d.x,d.y,b))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/
-this.view.scale-this.view.translate.x,d=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var b=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,b.x*f.width),d=Math.max(d,b.y*f.height);return new mxPoint(this.snap(c+a),this.snap(d+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),d=this.getInsertPoint(),b=this.snap(Math.round(Math.max(d.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(d.y,
-(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(b,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,d){var b=new mxCell;b.value="Text";b.style="text;html=1;resizable=0;points=[];";b.geometry=new mxGeometry(0,0,0,0);b.vertex=!0;if(null!=d){b.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";b.geometry.relative=!0;b.connectable=!1;var f=this.view.getRelativePoint(d,a,c);b.geometry.x=Math.round(1E4*f.x)/
-1E4;b.geometry.y=Math.round(f.y);b.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(d,b.geometry),e=this.view.scale;b.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else b.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,b.geometry.width=40,b.geometry.height=20,b.geometry.x=Math.round(a/this.view.scale)-f.x,b.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([b],null!=d?d.cell:null),
-this.fireEvent(new mxEventObject("textInserted","cells",[b])),this.autoSizeCell(b)}finally{this.getModel().endUpdate()}return b};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,d){var b=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var d=0;d<a.length;d++){var b=this.getAbsoluteUrl(a[d].getAttribute("href"));
-null!=b&&(a[d].setAttribute("rel",this.linkRelation),a[d].setAttribute("href",b),null!=c&&mxEvent.addGestureListeners(a[d],null,null,c))}});this.model.addListener(mxEvent.CHANGE,b);b();var f=this.container.style.cursor,e=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=
-g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,d){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor=
-"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-c.getGraphX()),b=Math.abs(this.startY-c.getGraphY());(d>e||b>e)&&this.clear()}}else{for(d=c.getSource();null!=d&&"a"!=d.nodeName.toLowerCase();)d=d.parentNode;null!=d?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||
-!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,b){for(var f=b.getSource(),k=b.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==b.sourceState||!b.isSource(b.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!=
-this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(k,this.currentLink),mxEvent.isConsumed(k)||(k=mxEvent.isMiddleMouseButton(k)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,k),b.consume())):null!=d&&!b.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-b.getGraphX())<e&&Math.abs(this.startY-b.getGraphY())<e&&d(b.getEvent()));this.clear()},activate:function(a){this.currentLink=
-g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,
-c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var d=this.getModel(),b=this.gridSize,f=[];d.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=d.getParent(a[g]),l=this.moveCells([e[g]],b,b,!1)[0];f.push(l);if(c)d.add(k,e[g]);else{var n=k.getIndex(a[g]);d.add(k,e[g],n+1)}}}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,d){if(null!=a){for(var b=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<b.length;e++)f.push(b[e]);
-document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",d);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),d=[],b=0;b<c.length;b++)d.push(c[b]);document.execCommand("createlink",!1,mxUtils.trim(a));
-c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==d.length+1)for(b=c.length-1;0<=b;b--)if(c[b]!=d[b-1]){for(c=c[b].getElementsByTagName("a");0<c.length;){for(d=c[0].parentNode;null!=c[0].firstChild;)d.insertBefore(c[0].firstChild,c[0]);d.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);
-return c||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var d=[],b=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),b=null!=b?Math.max(b,k):k,f=null!=f?Math.min(f,k):k;d.push(g)}}if(2<d.length){d.sort(function(c,d){return a?c.x-d.x:c.y-d.y});
-g=this.view.translate;k=this.view.scale;f=f/k-(a?g.x:g.y);b=b/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(b-f)/(d.length-1),b=f,e=1;e<d.length-1;e++){var n=this.view.getState(this.model.getParent(d[e].cell)),t=this.getCellGeometry(d[e].cell),b=b+l;null!=t&&null!=n&&(t=t.clone(),a?t.x=Math.round(b-t.width/2)-n.origin.x:t.y=Math.round(b-t.height/2)-n.origin.y,this.getModel().setGeometry(d[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&
-mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<c.length;b++){var f=this.view.getState(a[b]);if(null!=f){var e=this.getCellGeometry(c[b]);null==e||!e.relative||this.model.isEdge(a[b])||d.get(this.model.getParent(a[b]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}d=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(),
-0);for(b=0;b<a.length;b++)f.add(e,c[b]);return d.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,d,b,f,e,g,k,l){var n=this.useCssTransforms;n&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;d=null!=d?d:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||b?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());
-if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),h=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=h.style?h.style.backgroundColor=a:h.setAttribute("style","background-color:"+a));null==y.createElementNS?(h.setAttribute("xmlns",mxConstants.NS_SVG),h.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
-a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*d),w=Math.max(1,Math.ceil(t.height*a)+2*d);h.setAttribute("version","1.1");h.setAttribute("width",v+"px");h.setAttribute("height",w+"px");h.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(h);var q=this.createSvgCanvas(h);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((d/c-t.x)/r),Math.floor((d/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent=
-function(a,c,d,b,f,e,g,k,l,n,t,r,y){var h=this.state;if(null!=this.foAltText&&(0==b||0!=h.fontSize&&e.length<5*b/h.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(b/2));v.setAttribute("y",Math.round((f+h.fontSize)/2));v.setAttribute("fill",h.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(h.fontSize)+"px");v.setAttribute("font-family",h.fontFamily);(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight",
-"bold");(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(h.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var m=this.backgroundImage;if(null!=m){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,m.width*c,m.height*c);mxUtils.intersects(t,p)&&
-q.image(F.x,F.y,m.width,m.height,m.src,!0)}q.scale(a);q.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var B=k.drawCellState;k.drawCellState=function(a,c){for(var d=a.view.graph,b=d.isCellSelected(a.cell),f=d.model.getParent(a.cell);!e&&!b&&null!=f;)b=d.isCellSelected(f),f=d.model.getParent(f);(e||b)&&B.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),q);null!=l&&this.updateLinkTargets(h,l);return h}finally{n&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};
-Graph.prototype.updateLinkTargets=function(a,c){for(var d=a.getElementsByTagName("a"),b=0;b<d.length;b++){var f=d[b].getAttribute("href");null==f&&(f=d[b].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&d[b].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&
-(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,d){for(;null!=a&&a.nodeName!=c;){if(a==d)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var d=document.createRange();d.selectNode(a);c.removeAllRanges();c.addRange(d)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),d=c.createRange(),d.setEndPoint("StartToStart",
-a),d.select())};Graph.prototype.insertRow=function(a,c){for(var d=a.tBodies[0],b=d.rows[0].cells,f=0,e=0;e<b.length;e++)var g=b[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);d=d.insertRow(c);for(e=0;e<f;e++)mxUtils.br(d.insertCell(-1));return d.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var d=a.tHead;if(null!=d)for(var b=0;b<d.rows.length;b++){var f=document.createElement("th");d.rows[b].appendChild(f);mxUtils.br(f)}d=
-a.tBodies[0];for(b=0;b<d.rows.length;b++)f=d.rows[b].insertCell(c),mxUtils.br(f);return d.rows[0].cells[0<=c?c:d.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var d=a.tBodies[0].rows,b=0;b<d.length;b++)d[b].cells.length>c&&d[b].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var d=document.createElement("div");d.innerHTML=a;a=document.createDocumentFragment();
-for(var b;b=d.firstChild;)lastNode=a.appendChild(b);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function d(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var b=document.createElement("a");b.setAttribute("rel",this.linkRelation);b.setAttribute("href",
-this.getAbsoluteUrl(a));b.setAttribute("title",d(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);mxUtils.write(b,d(c,40));this.isCustomLink(a)&&mxEvent.addListener(b,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,
-function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var d=this.getCellAt(c.graphX,c.graphY);null!=d&&this.isSwimlane(d)&&this.hitsSwimlaneContent(d,c.graphX,c.graphY)||(c.state=this.view.getState(d),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor=
-"default");return c};var c=!1,d=!1,b=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),d=this.isSelectionEmpty(),b=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||
-!b&&!mxEvent.isMouseEvent(f.getEvent())&&(d&&null==f.getCell()&&this.isSelectionEmpty()||c&&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 c=[],d=0,b=a.rangeCount;d<
-b;++d)c.push(a.getRangeAt(d));return c}}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 c=0,d=a.length;c<d;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};var h=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&
-(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));h.apply(this,arguments)};var m=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){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 p=mxCellEditor.prototype.startEditing;
-mxCellEditor.prototype.startEditing=function(a,c){p.apply(this,arguments);var d=this.graph.view.getState(a);this.textarea.className=null!=d&&1==d.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var d=this.graph.getModel().getParent(a),b=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(d)&&null!=b&&b.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 c(a,d){d.originalNode=a;a=a.firstChild;for(var b=d.firstChild;null!=a&&null!=b;)c(a,b),a=a.nextSibling,b=b.nextSibling;return d}function d(a,c){if(null!=a)if(c.originalNode!=
-a)b(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?b(a):(d(a,c),c=c.nextSibling);a=f}}function b(a){for(var c=a.firstChild;null!=c;){var d=c.nextSibling;b(c);c=d}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 b=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){d(this.textarea,b)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),
-c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),d=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),
-f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(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(b*mxConstants.LINE_HEIGHT)+
-"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,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 k=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(k=mxUtils.replaceTrailingNewlines(k,"<div><br></div>"));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var b=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=
-mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(b*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"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!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&
-this.restoreSelection(this.switchSelectionState);this.switchSelectionState=d;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var d=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*d;this.bounds.height=60*d;var b=null!=a.text?a.text.margin:null;null==b&&(b=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+=b.x*this.bounds.width;this.bounds.y+=b.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/d)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/d)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/d)+(this.textarea.offsetHeight-
-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*d);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/d)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*d);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=d:mxUtils.setPrefixedStyle(this.textarea.style,
-"transform","scale("+d+","+d+")")}else this.textarea.style.height="",this.textarea.style.overflow="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var d=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(d=d.replace(/\n/g,"<br/>"));return d=this.graph.sanitizeHtml(d,!0)};
+function(a){for(var c=[],b=0;b<a.length;b++)if(this.isCellDeletable(a[b])){var d=this.view.getState(a[b]);if(null!=d){var f=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&d==mxConstants.NONE&&c.push(a[b])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell=
+function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b&&0<b.length?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null;
+return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var d=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!=
+f||null!=d&&null!=d.text&&null!=d.text.node&&(mxUtils.contains(d.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(b.x,b.y,d))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/
+this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,d.x*f.width),b=Math.max(b,d.y*f.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),d=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y,
+(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var d=new mxCell;d.value="Text";d.style="text;html=1;resizable=0;points=[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=b){d.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";d.geometry.relative=!0;d.connectable=!1;var f=this.view.getRelativePoint(b,a,c);d.geometry.x=Math.round(1E4*f.x)/
+1E4;d.geometry.y=Math.round(f.y);d.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(b,d.geometry),e=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else d.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-f.x,d.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([d],null!=b?b.cell:null),
+this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,b){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var d=this.getAbsoluteUrl(a[b].getAttribute("href"));
+null!=d&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",d),null!=c&&mxEvent.addGestureListeners(a[b],null,null,c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a=
+g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor=
+"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=Math.abs(this.startX-c.getGraphX()),d=Math.abs(this.startY-c.getGraphY());(b>e||d>e)&&this.clear()}}else{for(b=c.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState||
+!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,d){for(var f=d.getSource(),h=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=
+this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,h),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink=
+g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,
+c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),d=this.gridSize,f=[];b.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var h=b.getParent(a[g]),n=this.moveCells([e[g]],d,d,!1)[0];f.push(n);if(c)b.add(h,e[g]);else{var m=h.getIndex(a[g]);b.add(h,e[g],m+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,b){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]);
+document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",b);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],d=0;d<c.length;d++)b.push(c[d]);document.execCommand("createlink",!1,mxUtils.trim(a));
+c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(d=c.length-1;0<=d;d--)if(c[d]!=b[d-1]){for(c=c[d].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);
+return c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,f=null!=f?Math.min(f,h):h;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y});
+g=this.view.translate;h=this.view.scale;f=f/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var n=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var m=this.view.getState(this.model.getParent(b[e].cell)),t=this.getCellGeometry(b[e].cell),d=d+n;null!=t&&null!=m&&(t=t.clone(),a?t.x=Math.round(d-t.width/2)-m.origin.x:t.y=Math.round(d-t.height/2)-m.origin.y,this.getModel().setGeometry(b[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&
+mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),b=new mxDictionary,d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<c.length;d++){var f=this.view.getState(a[d]);if(null!=f){var e=this.getCellGeometry(c[d]);null==e||!e.relative||this.model.isEdge(a[d])||b.get(this.model.getParent(a[d]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}b=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(),
+0);for(d=0;d<a.length;d++)f.add(e,c[d]);return b.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,h,n){var m=this.useCssTransforms;m&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());
+if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),k=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=k.style?k.style.backgroundColor=a:k.setAttribute("style","background-color:"+a));null==y.createElementNS?(k.setAttribute("xmlns",mxConstants.NS_SVG),k.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):k.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
+a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*b),w=Math.max(1,Math.ceil(t.height*a)+2*b);k.setAttribute("version","1.1");k.setAttribute("width",v+"px");k.setAttribute("height",w+"px");k.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(k);var q=this.createSvgCanvas(k);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((b/c-t.x)/r),Math.floor((b/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent=
+function(a,c,b,d,f,e,g,h,n,m,t,r,y){var k=this.state;if(null!=this.foAltText&&(0==d||0!=k.fontSize&&e.length<5*d/k.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(d/2));v.setAttribute("y",Math.round((f+k.fontSize)/2));v.setAttribute("fill",k.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(k.fontSize)+"px");v.setAttribute("font-family",k.fontFamily);(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight",
+"bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var l=this.backgroundImage;if(null!=l){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,l.width*c,l.height*c);mxUtils.intersects(t,p)&&
+q.image(F.x,F.y,l.width,l.height,l.src,!0)}q.scale(a);q.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var A=h.drawCellState;h.drawCellState=function(a,c){for(var b=a.view.graph,d=b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!e&&!d&&null!=f;)d=b.isCellSelected(f),f=b.model.getParent(f);(e||d)&&A.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),q);null!=n&&this.updateLinkTargets(k,n);return k}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};
+Graph.prototype.updateLinkTargets=function(a,c){for(var b=a.getElementsByTagName("a"),d=0;d<b.length;d++){var f=b[d].getAttribute("href");null==f&&(f=b[d].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&b[d].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&&
+(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart",
+a),b.select())};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],d=b.rows[0].cells,f=0,e=0;e<d.length;e++)var g=d[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);b=b.insertRow(c);for(e=0;e<f;e++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var d=0;d<b.rows.length;d++){var f=document.createElement("th");b.rows[d].appendChild(f);mxUtils.br(f)}b=
+a.tBodies[0];for(d=0;d<b.rows.length;d++)f=b.rows[d].insertCell(c),mxUtils.br(f);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,d=0;d<b.length;d++)b[d].cells.length>c&&b[d].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();
+for(var d;d=b.firstChild;)lastNode=a.appendChild(d);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href",
+this.getAbsoluteUrl(a));d.setAttribute("title",b(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,b(c,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,
+function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var b=this.getCellAt(c.graphX,c.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,c.graphX,c.graphY)||(c.state=this.view.getState(b),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor=
+"default");return c};var c=!1,b=!1,d=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),b=this.isSelectionEmpty(),d=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||
+!d&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||c&&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 c=[],b=0,d=a.rangeCount;b<
+d;++b)c.push(a.getRangeAt(b));return c}}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 c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};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,c){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 p=mxCellEditor.prototype.startEditing;
+mxCellEditor.prototype.startEditing=function(a,c){p.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),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&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 q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!=
+a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?d(a):(b(a,c),c=c.nextSibling);a=f}}function d(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;d(c);c=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 d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),
+c=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(c?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),
+f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(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=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;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(c?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=b;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){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 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)/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="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"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 c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var c=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&
-this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var d=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(a.style,
-mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&d==mxConstants.NONE&&b==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=
-function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,d,b,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,b=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/
-b-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/b-d.y);this.hint.innerHTML=c+", "+d;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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
+this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){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),d=mxUtils.getValue(a.style,
+mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&b==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize=
+function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,b,d,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,d=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/
+d-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/d-b.y);this.hint.innerHTML=c+", "+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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
 !mxEvent.isControlDown(c.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,c){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(c.getEvent())||mxEvent.isMetaDown(c.getEvent())};
-var k=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=k.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+var n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){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;":(c=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/c)+" x "+this.roundLength(this.bounds.height/c)),c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==c&&(c=this.bounds),this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=c.y+c.height+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(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var b=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(d.x/f-b.x),b=this.roundLength(d.y/f-b.y);this.hint.innerHTML=e+", "+b;this.hint.style.visibility=
-"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+this.state.view.graph.gridSize+"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(c,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(b.x/f-d.x),d=this.roundLength(b.y/f-d.y);this.hint.innerHTML=e+", "+d;this.hint.style.visibility=
+"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),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="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+
 "/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" 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="'+HoverIcons.prototype.arrowFill+'" 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=":
@@ -2410,146 +2412,146 @@ HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.trian
 !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 c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var r=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){r.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c=
-a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var d=null!=this.div&&"none"!=this.div.style.display,
-b=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(b=this.first.x,f=this.first.y,e=(this.currentX-b)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(d){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,
-this.y,this.width,this.height),k=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(b,f,this.graph.getDefaultParent(),!0,!0),d=0;d<k.length;d++)if(this.graph.isCellMovable(k[d])){var l=this.graph.view.getState(k[d]),n=this.graph.getCellGeometry(k[d]);null!=l&&null!=n&&(n=n.clone(),n.translate(e,g),this.graph.model.setGeometry(k[d],n))}}finally{this.graph.model.endUpdate()}}else e=
-new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var d=mxUtils.getScrollOrigin(this.graph.container),b=mxUtils.getOffset(this.graph.container);d.x-=b.x;d.y-=b.y;var b=c.getX()+d.x,d=c.getY()+d.y,f=this.first.x-b,e=this.first.y-d,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),
-this.update(b,d),this.isSpaceEvent(c)?(b=this.x+this.width,d=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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=b-this.width),this.y<this.first.y&&(this.y=d-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor=
+a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var b=null!=this.div&&"none"!=this.div.style.display,
+d=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,f=this.first.y,e=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x,
+this.y,this.width,this.height),h=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(d,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]),m=this.graph.getCellGeometry(h[b]);null!=n&&null!=m&&(m=m.clone(),m.translate(e,g),this.graph.model.setGeometry(h[b],m))}}finally{this.graph.model.endUpdate()}}else e=
+new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),
+this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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=d-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)),c.consume()}};var l=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null);l.apply(this,arguments)};var n=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,d,b){v.apply(this,arguments);d!=this.currentTerminalState?(n=(new Date).getTime(),w=0):w=(new Date).getTime()-n;this.currentTerminalState=d};var B=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&
-2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&B.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var d=null!=a&&0==a,b=this.state.getVisibleTerminalState(d),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,
-b,d):null,d=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),f):null)?this.fixedHandleImage:null!=f&&null!=b?this.terminalHandleImage:this.handleImage;if(null!=d)return d=new mxImageShape(new mxRectangle(0,0,d.width,d.height),d.src),d.preserveImageAspect=!1,d;d=mxConstants.HANDLE_SIZE;this.preferHtml&&--d;return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;
-mxVertexHandler.prototype.createSizerShape=function(a,c,d){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),d=c.getParent(a[0]),b=this.graph.getCellGeometry(a[0]);if(c.isEdge(d)&&null!=b&&b.relative&&(c=this.graph.view.getState(a[0]),
-null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),d=c.getParent(a.cell),b=this.graph.getCellGeometry(a.cell);return c.isEdge(d)&&null!=b&&b.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,
-new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var d=this.graph.getModel(),b=d.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!d.isEdge(b)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=
+"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)),c.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 m=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){v.apply(this,arguments);b!=this.currentTerminalState?(m=(new Date).getTime(),w=0):w=(new Date).getTime()-m;this.currentTerminalState=b};var A=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&
+2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&A.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,
+d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;
+mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]),
+null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox,
+new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.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 G=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){G.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=
-this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var A=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){A.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",
-mxResources.get("rotateTooltip"));var c=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,d){c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);this.updateLinkHint(d,
-b);if(null!=d||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,d){if(null==c&&(null==d||0==d.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=d&&0<d.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));
-this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var b=document.createElement("img");b.setAttribute("src",Editor.editImage);b.setAttribute("title",mxResources.get("editLink"));b.setAttribute("width","11");b.setAttribute("height","11");b.style.marginLeft="10px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,
-function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));b=document.createElement("img");b.setAttribute("src",Dialog.prototype.clearImage);b.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));b.setAttribute("width","13");b.setAttribute("height","10");b.style.marginLeft="4px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,
-null);mxEvent.consume(a)}))}if(null!=d)for(b=0;b<d.length;b++){var f=document.createElement("div");f.style.marginTop=null!=c||0<b?"6px":"0px";f.appendChild(this.graph.createLinkForHint(d[b].getAttribute("href"),mxUtils.getTextContent(d[b])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.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(c,d){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);
-this.changeHandler=mxUtils.bind(this,function(c,d){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 c=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);if(null!=c||null!=d&&0<d.length)this.updateLinkHint(c,d),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 C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),d=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",a),a=null!=d?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==d&&(d=this.state);d=d.y+d.height;null!=c&&(d=Math.max(d,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(d+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=
+this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",
+mxResources.get("rotateTooltip"));var c=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){c()});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));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);this.updateLinkHint(b,
+d);if(null!=b||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,b){if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint));
+this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,
+function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));d=document.createElement("img");d.setAttribute("src",Dialog.prototype.clearImage);d.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));d.setAttribute("width","13");d.setAttribute("height","10");d.style.marginLeft="4px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell,
+null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var f=document.createElement("div");f.style.marginTop=null!=c||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.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(c,b){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);
+this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var 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 C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]||
+"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==b&&(b=this.state);b=b.y+b.height;null!=c&&(b=Math.max(b,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=
 function(){I.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){R.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 P=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(P.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 X=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){X.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var U=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){U.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 d(){mxActor.call(this)}function e(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function m(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function r(){mxActor.call(this)}function l(a,c){this.canvas=
-a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,l.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,l.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,l.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,l.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,l.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,l.prototype.arcTo)}function n(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function B(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function A(){mxShape.call(this)}
+(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 d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function l(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function n(){mxActor.call(this)}function r(){mxActor.call(this)}function h(a,c){this.canvas=
+a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,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 m(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function B(){mxShape.call(this)}
 function J(){mxEllipse.call(this)}function K(){mxShape.call(this)}function x(){mxShape.call(this)}function C(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function R(){mxShape.call(this)}function P(){mxShape.call(this)}function X(){mxShape.call(this)}function U(){mxShape.call(this)}function F(){mxCylinder.call(this)}function ea(){mxDoubleEllipse.call(this)}function ka(){mxDoubleEllipse.call(this)}function Y(){mxArrowConnector.call(this);this.spacing=0}function ba(){mxArrowConnector.call(this);
 this.spacing=0}function L(){mxActor.call(this)}function E(){mxRectangleShape.call(this)}function S(){mxActor.call(this)}function M(){mxActor.call(this)}function N(){mxActor.call(this)}function T(){mxActor.call(this)}function D(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxActor.call(this)}function ga(){mxActor.call(this)}function W(){mxActor.call(this)}function aa(){mxActor.call(this)}function Z(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function ra(){mxEllipse.call(this)}
-function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,d,b,f,e,g,k,l,n){g+=l;var na=b.clone();b.x-=f*(2*g+l);b.y-=e*(2*g+l);f*=g+l;e*=g+l;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,
-mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(c,f),a.lineTo(0,f-c),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 Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/Ba);a.translate((b-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size=
-20;e.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(b,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((b-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-
-1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,b,-c/3,b,c),a.lineTo(b,f-c),a.curveTo(b,f+c/3,0,f+c/3,0,f-c),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(h,mxCylinder);h.prototype.size=30;h.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(b-c,0),a.lineTo(b-c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",h);mxUtils.extend(m,mxActor);m.prototype.redrawPath=
-function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b/2,.5*f,b,0);a.quadTo(.5*b,f/2,b,f);a.quadTo(b/2,.5*f,0,f);a.quadTo(.5*b,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));
-var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,d),a.lineTo(c,d)):(a.moveTo(b-c,d),a.lineTo(b,d)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,d),a.lineTo(b,d)):(a.moveTo(0,d),a.lineTo(b-c,d),a.lineTo(b-c,0),a.lineTo(b,0)),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,d),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c,
-d,b,f){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));a.moveTo(0,c/2);a.quadTo(b/4,1.4*c,b/2,c/2);a.quadTo(3*b/4,c*(1-1.4),b,c/2);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),d=a.width,b=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=
-b,new mxRectangle(a.x,a.y+c,d,b-2*c);c*=d;return new mxRectangle(a.x+c,a.y,d-2*c,b)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.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};c.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,
-0);a.lineTo(b,0);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,d,b){var f=mxUtils.getValue(this.style,"size");return null!=f?b*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,
-"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b-c,f)],this.isRounded,
-d,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("trapezoid",
-g);mxUtils.extend(k,mxActor);k.prototype.size=.5;k.prototype.redrawPath=function(a,c,d,b,f){a.setFillColor(null);c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(b,f)],this.isRounded,d,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",
-k);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,d,b,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=b/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);l.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};l.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,
-this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};l.prototype.quadTo=function(a,c,d,b){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=b};l.prototype.curveTo=function(a,c,d,b,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};l.prototype.arcTo=function(a,c,d,b,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};l.prototype.lineTo=function(a,c){if(null!=
-this.lastX&&null!=this.lastY){var d=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},b=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(b*b+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var k=d(a-this.lastX)*b/g,d=d(c-this.lastY)*f/g,b=b/e,f=f/e,e=0;e<g;e++){var l=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,k*e+this.lastX-l*f,d*e+this.lastY-
-l*b)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};l.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 Ha=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 l(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.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,c,d,b,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(b/2,Math.min(f/
-2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(b*e,f*e)),a.moveTo(c+e,d),a.lineTo(c+b-e,d),a.quadTo(c+b,d,c+b,d+e),a.lineTo(c+b,d+f-e),a.quadTo(c+b,d+f,c+b-e,d+f),a.lineTo(c+e,d+f),a.quadTo(c,d+f,c,d+f-e),a.lineTo(c,d+e),a.quadTo(c,d,c+e,d)):(a.moveTo(c,d),a.lineTo(c+b,d),a.lineTo(c+b,d+f),a.lineTo(c,d+f),a.lineTo(c,d)),a.close(),a.end(),a.fillAndStroke()}};
-var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,d,b,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(n,mxRectangleShape);n.prototype.size=.1;n.prototype.isHtmlAllowed=function(){return!1};n.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 c=a.width,d=a.height;
-a=new mxRectangle(a.x,a.y,c,d);var b=c*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,b=Math.max(b,Math.min(c*f,d*f));a.x+=Math.round(b);a.width-=Math.round(2*b)}return a};n.prototype.paintForeground=function(a,c,d,b,f){var e=b*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,e=Math.max(e,Math.min(b*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,d);a.lineTo(c+e,d+f);a.moveTo(c+b-e,d);a.lineTo(c+b-e,d+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",n);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,d,b,f){a.setFillColor(mxConstants.NONE);a.rect(c,d,b,f);a.fill()};w.prototype.paintForeground=function(a,
-c,d,b,f){};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.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,d,b,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;d=Math.max(0,Math.min(f,
-parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),k=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-d),new mxPoint(Math.min(b,e+k),f-d),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-d),new mxPoint(0,
-f-d)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(B,mxActor);B.prototype.size=.2;B.prototype.fixedSize=20;B.prototype.isRoundable=function(){return!0};B.prototype.redrawPath=function(a,c,d,b,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("step",B);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.5*f),new mxPoint(b-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,d,b,f){var e=Math.min(b/5,f/5)+1;a.begin();a.moveTo(c+b/2,d+e);a.lineTo(c+b/2,d+f-e);a.moveTo(c+e,d+f/2);a.lineTo(c+b-e,d+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,d,b,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+
-1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,d,b,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,d,
-b,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var k=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],l=this.style["symbol"+e+"Width"],n=this.style["symbol"+e+"Height"],t=
-this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(b+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,h=d,y=k==mxConstants.ALIGN_CENTER?y+(b-l)/2:k==mxConstants.ALIGN_RIGHT?y+(b-l-t):y+t,h=na==mxConstants.ALIGN_MIDDLE?h+(f-n)/2:na==mxConstants.ALIGN_BOTTOM?h+(f-n-r):h+r;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,y,h,l,n);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,d,b,f,e){e?(a.moveTo(0,0),a.lineTo(b/2,f/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.ellipse(b/4,0,b/2,f/4);a.fillAndStroke();a.begin();a.moveTo(b/2,f/4);a.lineTo(b/2,2*f/3);a.moveTo(b/2,f/3);a.lineTo(0,
-f/3);a.moveTo(b/2,f/3);a.lineTo(b,f/3);a.moveTo(b/2,2*f/3);a.lineTo(0,f);a.moveTo(b/2,2*f/3);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(A,mxShape);A.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};A.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);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(b/6,f/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,f);a.fillAndStroke()};
-mxCellRenderer.registerShape("umlBoundary",A);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+b/8,d+f);a.lineTo(c+7*b/8,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(b,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",
-K);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,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,0);a.end();a.stroke();a.ellipse(0,f/8,b,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,d,b,f){a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape);
-C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=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,c)};C.prototype.paintBackground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,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,c,d,b,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,d,b,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+b/2,d+e),a.lineTo(c+b/2,d+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,d,b,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",
-C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.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))};I.prototype.paintBackground=function(a,c,d,b,f){var e=this.corner,g=Math.min(b,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(f,Math.max(1.5*
-e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),l=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);l!=mxConstants.NONE&&(a.setFillColor(l),a.rect(c,d,b,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,d,b,f),a.setGradient(this.fill,this.gradient,c,d,b,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,d);a.lineTo(c+g,d);a.lineTo(c+g,d+Math.max(0,
-k-1.5*e));a.lineTo(c+Math.max(0,g-e),d+k);a.lineTo(c,d+k);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+b,d);a.lineTo(c+b,d+f);a.lineTo(c,d+f);a.lineTo(c,d+k);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,d,b){b=C.prototype.size;null!=c&&(b=mxUtils.getValue(c.style,"size",b)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;d.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+
-c,Math.min(a.y+a.height,Math.max(a.y+b,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,d,b){b=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,d,b){b=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(b+=parseFloat(c.style.backboneSize)*
-c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return d.x<a.getCenterX()&&(b=-1*(b+1)),new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y,d.y)));d.y<a.getCenterY()&&(b=-1*(b+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,d.x)),a.getCenterY()+b)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,d,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,
-new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,d,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,d,b){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==
-mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l,k+e),new mxPoint(g+l,k+n),new mxPoint(g,k+n-e),new mxPoint(g,k)]):(e=l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+e,k),new mxPoint(g+l,k),new mxPoint(g+l-e,k+n),new mxPoint(g,k+n),new mxPoint(g+e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<g||d.x>g+l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("parallelogramPerimeter",
-mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,d,b){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e+f,k),new mxPoint(e+l-f,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n),new mxPoint(e+f,k)]):c==mxConstants.DIRECTION_WEST?
-(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k),new mxPoint(e+l-f,k+n),new mxPoint(e+f,k+n),new mxPoint(e,k)]):c==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k+f),new mxPoint(e+l,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n-f),new mxPoint(e,k+f)]):(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k+f),new mxPoint(e+l,k+n-f),new mxPoint(e,k+n),new mxPoint(e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<e||d.x>e+
-l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,d,b){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?B.prototype.fixedSize:B.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;
-c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l-f,k),new mxPoint(g+l,a),new mxPoint(g+l-f,k+n),new mxPoint(g,k+n),new mxPoint(g+f,a),new mxPoint(g,k)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+f,k),new mxPoint(g+l,k),new mxPoint(g+l-f,a),new mxPoint(g+l,k+n),new mxPoint(g+f,k+n),new mxPoint(g,a),new mxPoint(g+f,k)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,
-Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k+f),new mxPoint(t,k),new mxPoint(g+l,k+f),new mxPoint(g+l,k+n),new mxPoint(t,k+n-f),new mxPoint(g,k+n),new mxPoint(g,k+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(t,k+f),new mxPoint(g+l,k),new mxPoint(g+l,k+n-f),new mxPoint(t,k+n),new mxPoint(g,k+n-f),new mxPoint(g,k)]);t=new mxPoint(t,a);b&&(d.x<g||d.x>g+l?t.y=d.y:t.x=d.x);return mxUtils.getPerimeterPoint(k,t,d)};mxStyleRegistry.putValue("stepPerimeter",
-mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,d,b){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,k=a.width,l=a.height,n=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=l*Math.max(0,Math.min(1,f)),g=[new mxPoint(n,g),new mxPoint(e+k,g+f),new mxPoint(e+k,g+l-f),new mxPoint(n,
-g+l),new mxPoint(e,g+l-f),new mxPoint(e,g+f),new mxPoint(n,g)]):(f=k*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+f,g),new mxPoint(e+k-f,g),new mxPoint(e+k,a),new mxPoint(e+k-f,g+l),new mxPoint(e+f,g+l),new mxPoint(e,a),new mxPoint(e+f,g)]);n=new mxPoint(n,a);b&&(d.x<e||d.x>e+k?n.y=d.y:n.x=d.x);return mxUtils.getPerimeterPoint(g,n,d)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,d,b,
-f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,d);a.ellipse((b-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(b/2,e);a.lineTo(b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,
-d);a.begin();a.moveTo(b/2,e+g);a.lineTo(b/2,f);a.end();a.stroke();a.begin();a.moveTo((b-e)/2-g,e/2);a.quadTo((b-e)/2-g,e+g,b/2,e+g);a.quadTo((b+e)/2+g,e+g,(b+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset=
-2;U.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,d);a.ellipse(0,e,b-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(b/2,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,d,b,f,e){var g=parseFloat(mxUtils.getValue(this.style,
-"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=.3*f-c/2,l=.7*f-c/2;e?(a.moveTo(d,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(d,k+c),a.moveTo(d,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(d,l+c)):(a.moveTo(d,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(d,f),a.lineTo(d,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(d,l),a.lineTo(d,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(d,k),a.close());a.end()};mxCellRenderer.registerShape("component",
-F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,d,b,f){var e=Math.min(4,Math.min(b/5,f/5));0<b&&0<f&&(a.ellipse(c+e,d+e,b-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,d,b,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded=
+function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,b,d,f,e,g,h,n,m){g+=n;var na=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,
+mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,f),a.lineTo(c,f),a.lineTo(0,f-c),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 Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ba);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size=
+20;e.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth-
+1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};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(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(d-c,0),a.lineTo(d-c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,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,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));
+var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,b),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d,b)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,b),a.lineTo(d,b)):(a.moveTo(0,b),a.lineTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d,0)),a.lineTo(d,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c,
+b,d,f){c=Math.max(0,Math.min(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(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*=
+d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-2*c,d)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.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};c.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,
+0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style,
+"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,b,d,f){c=d*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(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded,
+b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,b,d,f){c=d*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(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid",
+g);mxUtils.extend(n,mxActor);n.prototype.size=.5;n.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*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,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket",
+n);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);h.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};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,c,b,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};h.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};h.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};h.prototype.lineTo=function(a,c){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},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(d*d+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var h=b(a-this.lastX)*d/g,b=b(c-this.lastY)*f/g,d=d/e,f=f/e,e=0;e<g;e++){var n=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,h*e+this.lastX-n*f,b*e+this.lastY-
+n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};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 Ha=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)));Ha.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,c,b,d,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/
+2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}};
+var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(m,mxRectangleShape);m.prototype.size=.1;m.prototype.isHtmlAllowed=function(){return!1};m.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 c=a.width,b=a.height;
+a=new mxRectangle(a.x,a.y,c,b);var d=c*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,d=Math.max(d,Math.min(c*f,b*f));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};m.prototype.paintForeground=function(a,c,b,d,f){var e=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,e=Math.max(e,Math.min(d*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,b);a.lineTo(c+e,b+f);a.moveTo(c+d-e,b);a.lineTo(c+d-e,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",m);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};w.prototype.paintForeground=function(a,
+c,b,d,f){};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.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,b,d,f){c=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 e=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,f-b),new mxPoint(Math.min(d,e+h),f-b),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0,
+f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(A,mxActor);A.prototype.size=.2;A.prototype.fixedSize=20;A.prototype.isRoundable=function(){return!0};A.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",A);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c=d*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-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+
+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,b,d,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,b,
+d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var h=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+e+"Width"],m=this.style["symbol"+e+"Height"],t=
+this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,k=b,y=h==mxConstants.ALIGN_CENTER?y+(d-n)/2:h==mxConstants.ALIGN_RIGHT?y+(d-n-t):y+t,k=na==mxConstants.ALIGN_MIDDLE?k+(f-m)/2:na==mxConstants.ALIGN_BOTTOM?k+(f-m-r):k+r;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,y,k,n,m);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0,
+f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()};
+mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy",
+K);mxUtils.extend(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,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape);
+C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=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,c)};C.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,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,c,b,d,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline",
+C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.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))};I.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,g=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(f,Math.max(1.5*
+e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),n=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);n!=mxConstants.NONE&&(a.setFillColor(n),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+g,b);a.lineTo(c+g,b+Math.max(0,
+h-1.5*e));a.lineTo(c+Math.max(0,g-e),b+h);a.lineTo(c,b+h);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=C.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+
+c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)*
+c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a,
+new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==
+mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n,h+e),new mxPoint(g+n,h+m),new mxPoint(g,h+m-e),new mxPoint(g,h)]):(e=n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+e,h),new mxPoint(g+n,h),new mxPoint(g+n-e,h+m),new mxPoint(g,h+m),new mxPoint(g+e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<g||b.x>g+n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",
+mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+n-f,h),new mxPoint(e+n,h+m),new mxPoint(e,h+m),new mxPoint(e+f,h)]):c==mxConstants.DIRECTION_WEST?
+(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+n,h),new mxPoint(e+n-f,h+m),new mxPoint(e+f,h+m),new mxPoint(e,h)]):c==mxConstants.DIRECTION_NORTH?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+n,h),new mxPoint(e+n,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+n,h+f),new mxPoint(e+n,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<e||b.x>e+
+n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?A.prototype.fixedSize:A.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;
+c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n-f,h),new mxPoint(g+n,a),new mxPoint(g+n-f,h+m),new mxPoint(g,h+m),new mxPoint(g+f,a),new mxPoint(g,h)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+f,h),new mxPoint(g+n,h),new mxPoint(g+n-f,a),new mxPoint(g+n,h+m),new mxPoint(g+f,h+m),new mxPoint(g,a),new mxPoint(g+f,h)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,
+Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h+f),new mxPoint(t,h),new mxPoint(g+n,h+f),new mxPoint(g+n,h+m),new mxPoint(t,h+m-f),new mxPoint(g,h+m),new mxPoint(g,h+f)]):(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(t,h+f),new mxPoint(g+n,h),new mxPoint(g+n,h+m-f),new mxPoint(t,h+m),new mxPoint(g,h+m-f),new mxPoint(g,h)]);t=new mxPoint(t,a);d&&(b.x<g||b.x>g+n?t.y=b.y:t.x=b.x);return mxUtils.getPerimeterPoint(h,t,b)};mxStyleRegistry.putValue("stepPerimeter",
+mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,h=a.width,n=a.height,m=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=n*Math.max(0,Math.min(1,f)),g=[new mxPoint(m,g),new mxPoint(e+h,g+f),new mxPoint(e+h,g+n-f),new mxPoint(m,
+g+n),new mxPoint(e,g+n-f),new mxPoint(e,g+f),new mxPoint(m,g)]):(f=h*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+f,g),new mxPoint(e+h-f,g),new mxPoint(e+h,a),new mxPoint(e+h-f,g+n),new mxPoint(e+f,g+n),new mxPoint(e,a),new mxPoint(e+f,g)]);m=new mxPoint(m,a);d&&(b.x<e||b.x>e+h?m.y=b.y:m.x=b.x);return mxUtils.getPerimeterPoint(g,m,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,b,d,
+f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,
+b);a.begin();a.moveTo(d/2,e+g);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-g,e/2);a.quadTo((d-e)/2-g,e+g,d/2,e+g);a.quadTo((d+e)/2+g,e+g,(d+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset=
+2;U.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style,
+"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,h=.3*f-c/2,n=.7*f-c/2;e?(a.moveTo(b,h),a.lineTo(g,h),a.lineTo(g,h+c),a.lineTo(b,h+c),a.moveTo(b,n),a.lineTo(g,n),a.lineTo(g,n+c),a.lineTo(b,n+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,n+c),a.lineTo(0,n+c),a.lineTo(0,n),a.lineTo(b,n),a.lineTo(b,h+c),a.lineTo(0,h+c),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",
+F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded=
 function(){return!0};Y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Y.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Y);mxUtils.extend(ba,mxArrowConnector);ba.prototype.defaultWidth=10;ba.prototype.defaultArrowWidth=20;ba.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ba.prototype.getEndArrowWidth=
-function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(b,0),new mxPoint(b,f)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,d,b,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(b*g,f*g));g=Math.max(e,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,d+e);a.lineTo(c+b,d+e);a.end();a.stroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+g,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=
-20;S.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint(c,d),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
-mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(b,0);a.lineTo(b,f);a.end();a.moveTo(0,f/2);a.lineTo(b,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint((b+c)/2,d),new mxPoint((b+c)/2,f),new mxPoint((b-c)/2,f),new mxPoint((b-c)/2,d),new mxPoint(0,d)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath=
-function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
-T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b,
-f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(b,0);a.quadTo(b-2*c,f/2,b,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V,
-mxActor);V.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.quadTo(b/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b/
-2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.8*c),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,d,b,f){c=
-f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-c),new mxPoint(b/2,f),new mxPoint(0,f-c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();
-a.moveTo(c+b/2,d+f);a.lineTo(c+b,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2);a.end();a.stroke();a.begin();a.moveTo(c+b/2,d);a.lineTo(c+b/2,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a,
-c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*b,d+.145*f);a.lineTo(c+.855*b,d+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*b,d+.145*f);a.lineTo(c+.145*b,d+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,d,b,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2);
-a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,d,b,f){a.begin();a.moveTo(c,d);a.lineTo(c+b,d);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,d+f);a.lineTo(c+b,d+f);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,d,b,f){var e=d+f-5;a.begin();a.moveTo(c,d);a.lineTo(c,d+f);
-a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+b,e);a.moveTo(c+b,d);a.lineTo(c+b,d+f);a.moveTo(c+b,e);a.lineTo(c+b-10,e-5);a.moveTo(c+b,e);a.lineTo(c+b-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,d,b,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c,
-d,b,f),a.fill(),a.begin(),a.moveTo(c,d),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+b,d):a.moveTo(c+b,d),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+b,d+f):a.moveTo(c+b,d+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,d+f):a.moveTo(c,d+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,d-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,
-d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+b/2,d),a.lineTo(c+b/2,d+f)):(a.moveTo(c,d+f/2),a.lineTo(c+b,d+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);a.moveTo(0,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",
-ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,b);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;d=c+e;var g=(b-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(b,c);a.lineTo(b,d);a.lineTo(e,d);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,d);a.lineTo(0,d);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size=
-.25;da.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);d=Math.min(b-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.moveTo(0,f/2);a.lineTo(d,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(d,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,d){for(var b=[],f=0;f<c.length;f++)b.push(mxUtils.clone(c[f]));
-var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,b,d]);3<=a.state.strokeWidth&&(b=mxUtils.getValue(this.style,"fillColor",null),null!=b&&(a.setStrokeColor(b),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,d])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=
-this.format.getSelectionState(),d=a.apply(this,arguments);"umlFrame"==c.style.shape&&d.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return d}}();mxMarker.addMarker("dash",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin();a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin();
-a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.moveTo(b.x-t/2+r/2,b.y-r/2-t/2);a.lineTo(b.x-r/2-3*t/2,b.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,d,b,f,e,g,k,l,n){var t=b.clone(),r=wa.apply(this,arguments),y=f*(g+2*l),h=e*(g+2*l);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*l,t.y-e*l);a.lineTo(t.x-2*y+f*l,t.y-2*h+e*l);a.moveTo(t.x-y-h+e*l,t.y-h+y-f*l);a.lineTo(t.x+h-y-e*l,t.y-h-y+f*l);a.stroke()}});
-mxMarker.addMarker("async",function(a,c,d,b,f,e,g,k,l,n){c=f*l*1.118;d=e*l*1.118;f*=g+l;e*=g+l;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);k?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,b,d,f,e,g,k,l,n,t){e*=k+n;g*=k+n;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);l?c.lineTo(r.x-
-e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,b){return ua(a,["width"],c,function(c,d,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(e.x+d*c/4+f*g/2,e.y+f*c/4-d*g/2)},function(c,d,f,e,g,k){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*c)/a.view.scale-b})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=
-a.view.scale,k=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-k.x,l=f.y-k.y,n=Math.sqrt(e*e+l*l),k=b.call(this,n,e/n,l/n,k,f);return new mxPoint(k.x/g-c.x,k.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,k=g.length-1;c=a.view.translate;var l=a.view.scale,n=d?g[0]:g[k],g=d?g[1]:g[k-1],k=g.x-n.x,t=g.y-n.y,r=Math.sqrt(k*k+t*t);b.x=(b.x+c.x)*l;b.y=(b.y+c.y)*l;f.call(this,r,k/r,t/r,n,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=
+20;S.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()};
+mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
+"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath=
+function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow",
+T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,
+f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V,
+mxActor);V.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/
+2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c=
+f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();
+a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a,
+c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);
+a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f);
+a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c,
+b,d,f),a.fill(),a.begin(),a.moveTo(c,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c,
+b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay",
+ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size=
+.25;da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f]));
+var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c=
+this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin();a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin();
+a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.moveTo(d.x-t/2+r/2,d.y-r/2-t/2);a.lineTo(d.x-r/2-3*t/2,d.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,h,n,m){var t=d.clone(),r=wa.apply(this,arguments),y=f*(g+2*n),k=e*(g+2*n);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*n,t.y-e*n);a.lineTo(t.x-2*y+f*n,t.y-2*k+e*n);a.moveTo(t.x-y-k+e*n,t.y-k+y-f*n);a.lineTo(t.x+k-y-e*n,t.y-k-y+f*n);a.stroke()}});
+mxMarker.addMarker("async",function(a,c,b,d,f,e,g,h,n,m){c=f*n*1.118;b=e*n*1.118;f*=g+n;e*=g+n;var t=d.clone();t.x-=c;t.y-=b;d.x+=1*-f-c;d.y+=1*-e-b;return function(){a.begin();a.moveTo(t.x,t.y);h?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,h,n,m,t){e*=h+m;g*=h+m;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);n?c.lineTo(r.x-
+e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,d){return ua(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,h){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*c)/a.view.scale-d})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g=
+a.view.scale,h=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-h.x,n=f.y-h.y,m=Math.sqrt(e*e+n*n),h=b.call(this,m,e/m,n/m,h,f);return new mxPoint(h.x/g-c.x,h.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,h=g.length-1;c=a.view.translate;var n=a.view.scale,m=d?g[0]:g[h],g=d?g[1]:g[h-1],h=g.x-m.x,t=g.y-m.y,r=Math.sqrt(h*h+t*t);b.x=(b.x+c.x)*n;b.y=(b.y+c.y)*n;f.call(this,r,h/r,t/r,m,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=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(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Da=function(a,c,b){return function(d){var f=[O(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,
 parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,b.y-c.y)))/a)})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ja(d));return f}},xa=function(a,c,b,d,f){b=null!=b?b:1;return function(e){var g=[O(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,
 "size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(c.width,d*(b?1:c.width))),c.getCenterY())},function(a,c,d){var g=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=e.view.graph.snap(a));this.state.style.size=a},null,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ja(e));return g}},Fa=function(a){return function(c){var b=[O(c,["size"],function(c){var b=Math.max(0,
 Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(c.x+b*c.width*.75,c.y+c.height/4)},function(c,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-c.x)/(.75*c.width)))},null,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ja(c));return b}},va=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c}},ja=function(a,c){return O(a,[mxConstants.STYLE_ARCSIZE],function(b){var d=
 null!=c?c: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+d)}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+d)},function(c,b,d){"1"==mxUtils.getValue(a.style,
 mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},O=function(a,c,b,d,f,e){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<c.length;a++)this.copyStyle(c[a])};g.getPosition=b;g.setPosition=d;g.ignoreGrid=null!=f?f:!0;
-if(e){var k=g.positionChanged;g.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*
-a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&
-(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,
-mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&&
-(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=
-mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,
-e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a,
-["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-
-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
+if(e){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*
+a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.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*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&&
+(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,
+mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&&
+(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=
+mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,
+e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a,
+["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-
+d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=
 a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[O(a,[mxConstants.STYLE_STARTSIZE],function(c){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(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width,
 b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,Math.min(c.width,b.x-c.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(ja(a,b/2))}return c},label:va(),ext:va(),rectangle:va(),triangle:va(),rhombus:va(),umlLifeline:function(a){return[O(a,
 ["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[O(a,["width","height"],function(a){var c=Math.max(I.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",I.prototype.width))),b=Math.max(1.5*I.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,
-"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size=
+"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size=
 Math.max(0,Math.min(.5,(c.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},cross:function(a){return[O(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ca.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){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()-c.y)/b*2,Math.max(0,a.getCenterX()-
-c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size)));
+c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=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-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size)));
 return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},dataStorage:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.x+(1-c)*a.width,a.getCenterY())},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-
 c.x)/a.width))})]},callout:function(a){var c=[O(a,["size","position"],function(a){var c=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-c)},function(a,c){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-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),
@@ -2560,22 +2562,22 @@ Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.d
 Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
 (b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))})]},document:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",c.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},tape:function(a){return[O(a,["size"],function(a){var c=Math.max(0,
 Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+
-a.height-c.y)/a.height))})]},step:xa(B.prototype.size,!0,null,!0,B.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(k.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
+a.height-c.y)/a.height))})]},step:xa(A.prototype.size,!0,null,!0,A.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(n.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;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=ya[a];null==a&&null!=this.state.shape&&this.state.shape.isRoundable()&&(a=ya[mxConstants.SHAPE_RECTANGLE]);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=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=
-d&&(d=e.transformControlPoint(a,d));null==k&&null!=c&&(k=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var l=za.x,n=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){a=function(a,c,b){a-=h.x;var d=c-h.y;c=(r*a-t*d)/(l*r-n*t);a=(n*a-l*d)/(n*t-l*r);y?(b&&(h=new mxPoint(h.x+l*c,h.y+n*c),f.push(h)),h=new mxPoint(h.x+t*a,h.y+r*a)):(b&&(h=new mxPoint(h.x+t*a,h.y+r*a),f.push(h)),h=new mxPoint(h.x+
-l*c,h.y+n*c));f.push(h)};var h=k;null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.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,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.apply(this,arguments)};d.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[];
+mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=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=e.transformControlPoint(a,d));null==h&&null!=c&&(h=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var n=za.x,m=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,c,b){a-=k.x;var d=c-k.y;c=(r*a-t*d)/(n*r-m*t);a=(m*a-n*d)/(m*t-n*r);y?(b&&(k=new mxPoint(k.x+n*c,k.y+m*c),f.push(k)),k=new mxPoint(k.x+t*a,k.y+r*a)):(b&&(k=new mxPoint(k.x+t*a,k.y+r*a),f.push(k)),k=new mxPoint(k.x+
+n*c,k.y+m*c));f.push(k)};var k=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,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.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;t.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;
+.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;
 E.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;ra.prototype.constraints=mxEllipse.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=
 mxRectangleShape.prototype.constraints;W.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,
 .3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,
 1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.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)];u.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)];B.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,
+0),!1)];A.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)];R.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),
@@ -2586,76 +2588,77 @@ mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.protot
 new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.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)];C.prototype.constraints=null;V.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)];ga.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)];X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
 .5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
-Actions.prototype.init=function(){function a(a){b.escape();var d=b.getDeletableCells(b.getSelectionCells());if(null!=d&&0<d.length){var c=b.model.getParents(d);b.removeCells(d,a);if(null!=c){a=[];for(d=0;d<c.length;d++)b.model.contains(c[d])&&(b.model.isVertex(c[d])||b.model.isEdge(c[d]))&&a.push(c[d]);b.setSelectionCells(a)}}}var d=this.editorUi,e=d.editor,b=e.graph,h=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(d.getUrl())});
-this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){d.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));d.showDialog((new OpenDialog(this)).container,
-320,220,!0,!0,function(){window.openFile=null})}).isEnabled=h;this.addAction("save",function(){d.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){d.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){d.showDialog((new ExportDialog(d)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(d);d.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
-function(){d.showDialog((new PageSetupDialog(d)).container,320,220,!0,!0)}).isEnabled=h;this.addAction("print...",function(){d.showDialog((new PrintDialog(d)).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(){d.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){d.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 d=mxClipboard.paste(b);if(null!=d){a=!0;for(var c=0;c<d.length&&
-a;c++)a=a&&b.model.isEdge(d[c]);var f=b.view.translate,e=b.view.scale,k=f.x,r=f.y,f=null;if(1==d.length&&a){var l=b.getCellGeometry(d[0]);null!=l&&(f=l.getTerminalPoint(!0))}f=null!=f?f:b.getBoundingBoxFromGeometry(d,a);if(null!=f){var n=Math.round(b.snap(b.popupMenuHandler.triggerX/e-k)),h=Math.round(b.snap(b.popupMenuHandler.triggerY/e-r));b.cellsMoved(d,n-f.x,h-f.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&&
-(a=b.getCellGeometry(a),null!=a&&(d.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(b.isEnabled()&&!b.isSelectionEmpty()&&null!=d.copiedSize){b.getModel().beginUpdate();try{var e=b.getSelectionCells();for(a=0;a<e.length;a++)if(b.getModel().isVertex(e[a])){var c=b.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=d.copiedSize.width,c.height=d.copiedSize.height,b.getModel().setGeometry(e[a],c))}}finally{b.getModel().endUpdate()}}},
-null,null,"Alt+Shit+V");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)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){b.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){b.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){b.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==b.getSelectionCount()?b.setCellStyles("container","1"):b.setSelectionCell(b.groupCells(null,
-0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==b.getSelectionCount()&&0==b.getModel().getChildCount(b.getSelectionCell())?b.setCellStyles("container","0"):b.setSelectionCells(b.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){b.removeCellsFromParent()});this.addAction("edit",function(){b.isEnabled()&&b.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=b.getSelectionCell()||b.getModel().getRoot();
-d.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c="";if(mxUtils.isNode(b.value)){var f=b.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(d,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(b,c)});d.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=b.getLinkForCell(b.getSelectionCell());
-null!=a&&b.openLink(a)});this.addAction("editLink...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c=a.getLinkForCell(b)||"";d.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(b,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&d.showLinkDialog("",mxResources.get("insert"),function(a,d){a=mxUtils.trim(a);if(0<a.length){var c=
-null,f=b.getLinkTitle(a);null!=d&&0<d.length&&(c=d[0].iconUrl,f=d[0].name||d[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=b.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;b.setLinkForCell(c,a);b.cellSizeUpdated(c,!0);b.getModel().beginUpdate();try{c=b.addCell(c),
-b.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{b.getModel().endUpdate()}b.setSelectionCell(c);b.scrollCellToVisible(b.getSelectionCell())}})}).isEnabled=h;this.addAction("link...",mxUtils.bind(this,function(){var a=d.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var b=a.getSelectedElement(),c=a.getParentByName(b,"A",a.cellEditor.textarea),f="";if(null==c&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==c;k++)e[k].textContent==
-b.textContent&&(a.selectNode(e[k]),c=e[k]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();d.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=h;this.addAction("autosize",function(){var a=b.getSelectionCells();if(null!=a){b.getModel().beginUpdate();try{for(var d=0;d<a.length;d++){var c=
-a[d];if(b.getModel().getChildCount(c))b.updateGroupBounds([c],20);else{var f=b.view.getState(c),e=b.getCellGeometry(c);b.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&b.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/b.view.scale,b.getModel().setGeometry(c,e)):b.updateCellSize(c)}}}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=b.getView().getState(b.getSelectionCell());if(null!=a){var e="1";b.stopEditing();
-b.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=b.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);b.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(b.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),b.cellLabelChanged(a.cell,b.sanitizeHtml(c));
-b.setCellStyles("html",e);d.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=b.getView().getState(b.getSelectionCell()),d="wrap";b.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);b.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",function(){var a="0",e=b.getView().getState(b.getSelectionCell());
-null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(d,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&b.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");d.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){b.zoomTo(1);d.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){b.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");
-this.addAction("zoomOut",function(a){b.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){b.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/a.width/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop=
-a.y*b.view.scale-1,b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth-b.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/(2*a.width)/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop=Math.min(a.y,
-(b.container.scrollHeight-b.container.clientHeight)/2),b.container.scrollLeft=Math.min(a.x,(b.container.scrollWidth-b.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();b.zoomTo(Math.floor(20*(b.container.clientWidth-10)/b.pageFormat.width/b.pageScale)/20);if(mxUtils.hasScrollbars(b.container)){var a=b.getPagePadding();b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth-
-b.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*b.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.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*b.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.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(){b.setGridEnabled(!b.isGridEnabled());d.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.isGridEnabled()});m.setEnabled(!1);
-m=this.addAction("guides",function(){b.graphHandler.guidesEnabled=!b.graphHandler.guidesEnabled;d.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){b.tooltipHandler.setEnabled(!b.tooltipHandler.isEnabled())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.tooltipHandler.isEnabled()});m=this.addAction("collapseExpand",function(){var a=
-new ChangePageSetup(d);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!b.foldingEnabled;b.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.foldingEnabled});m.isEnabled=h;m=this.addAction("scrollbars",function(){d.setScrollbars(!d.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){d.setPageVisible(!b.pageVisible)}));m.setToggleAction(!0);m.setSelectedCallback(function(){return b.pageVisible});
-m=this.addAction("connectionArrows",function(){b.connectionArrowsEnabled=!b.connectionArrowsEnabled;d.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){b.setConnectable(!b.connectionHandler.isEnabled());d.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isEnabled()});
-m=this.addAction("copyConnect",function(){b.connectionHandler.setCreateTarget(!b.connectionHandler.isCreateTarget());d.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isCreateTarget()});m.isEnabled=h;m=this.addAction("autosave",function(){d.editor.setAutosave(!d.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.editor.autosave});m.isEnabled=h;m.visible=!1;this.addAction("help",function(){var a=
-"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(d.showDialog((new AboutDialog(d)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));m=mxUtils.bind(this,function(a,d,c,f){return this.addAction(a,function(){if(null!=c&&b.cellEditor.isContentEditing())c();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
-d),(d&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&b.replaceElement(a)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&b.replaceElement(a)}):(d&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,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(){d.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});
-this.addAction("strokeColor...",function(){d.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){d.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){d.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});
-this.addAction("vertical",function(){d.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){d.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,null),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});
-this.addAction("dashed",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("dotted",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
-"1 4"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("sharp",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});
-this.addAction("rounded",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!b.isSelectionEmpty()&&b.isEnabled()){b.getModel().beginUpdate();try{var a=b.getSelectionCells(),e=b.view.getState(a[0]),
-c=null!=e?e.style:b.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";b.setCellStyles(mxConstants.STYLE_ROUNDED,f);b.setCellStyles(mxConstants.STYLE_CURVED,null);d.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"),d.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()),e="1";null!=a&&null!=b.getFoldingImage(a)&&(e="0");b.setCellStyles("collapsible",e);d.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",b.getSelectionCells()))});this.addAction("editStyle...",
-mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var d=b.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&d.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+
-"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&d.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var d=e.graph.selectionCellsHandler.getHandler(a);if(d instanceof mxEdgeHandler){for(var c=b.view.translate,f=b.view.scale,g=c.x,c=c.y,a=b.getModel().getParent(a),k=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=k;)g+=k.x,c+=k.y,a=b.getModel().getParent(a),k=
-b.getCellGeometry(a);g=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-c));d.addPointAt(d.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=d.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 d=0;d<a.length;d++){var c=a[d];if(b.getModel().isEdge(c)){var f=
-b.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,b.getModel().setGeometry(c,f))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=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")+"):",e=b.getView().getState(b.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=b.cellEditor.saveSelection();d.showImageDialog(a,c,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 k=b.getFreeInsertPoint(),g=e=[b.insertVertex(b.getDefaultParent(),null,"",k.x,k.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 r=b.view.getState(e[0]),h=null!=r?r.style:b.getCellStyle(e[0]);"image"!=h[mxConstants.STYLE_SHAPE]&&"label"!=h[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image",
-e):0==a.length&&b.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==b.getSelectionCount()&&null!=c&&null!=d){var y=e[0],t=b.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=d,b.getModel().setGeometry(y,t))}}finally{b.getModel().endUpdate()}null!=g&&(b.setSelectionCells(g),b.scrollCellToVisible(g[0]))}}},b.cellEditor.isContentEditing(),!b.cellEditor.isContentEditing())}}).isEnabled=h;this.addAction("insertImage...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&
-(b.clearSelection(),d.actions.get("image").funct())}).isEnabled=h;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.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(){d.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));m=this.addAction("outline",
-mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),d.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,d,e,b,h){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,d,e,b,h))};Actions.prototype.put=function(a,d){return this.actions[a]=d};Actions.prototype.get=function(a){return this.actions[a]};
-function Action(a,d,e,b,h){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(d);this.enabled=null!=e?e:!0;this.iconCls=b;this.shortcut=h;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,d){mxEventSource.call(this);this.ui=a;this.data=d||""};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,d,e,b){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,d,e){};DrawioFile.prototype.saveFile=function(a,d,e,b){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
-DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,d,e){};DrawioFile.prototype.isMovable=function(){return!1};
-DrawioFile.prototype.move=function(a,d,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data};
-DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){var e=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=e&&e.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||
-this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);
-this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)};
-DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
-DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"),
-0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))};
-DrawioFile.prototype.autosave=function(a,d,e,b){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<d?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}),
-mxUtils.bind(this,function(a){null!=b&&b(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,d){if(null!=a&&null!=d){var e=a.lastIndexOf("."),b=0<e?a.substring(e):"",e=d.lastIndexOf(".");return b===(0<e?d.substring(e):"")}return a==d};
-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,d,e,b){DrawioFile.call(this,a,d);this.title=e;this.mode=b?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,d,e){this.saveAs(this.title,d,e)};LocalFile.prototype.saveAs=function(a,d,e){this.saveFile(a,!1,d,e)};
-LocalFile.prototype.saveFile=function(a,d,e,b){this.title=a;this.updateFileData();d=this.getData();var h=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,h?"image/png":"text/xml",h);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+
-(h?"&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()});h?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(a)}),b,this.ui.getCurrentFile()!=this?this.getData():null):m(d)};LocalFile.prototype.rename=function(a,d,e){this.title=a;this.descriptorChanged();null!=d&&d()};
-LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){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":
+Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var c=d.model.getParents(b);d.removeCells(b,a);if(null!=c){a=[];for(b=0;b<c.length;b++)d.model.contains(c[b])&&(d.model.isVertex(c[b])||d.model.isEdge(c[b]))&&a.push(c[b]);d.setSelectionCells(a)}}}var b=this.editorUi,e=b.editor,d=e.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())});
+this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(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(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",
+function(){mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var b=mxClipboard.paste(d);if(null!=b){a=!0;for(var c=0;c<b.length&&
+a;c++)a=a&&d.model.isEdge(b[c]);var f=d.view.translate,e=d.view.scale,n=f.x,r=f.y,f=null;if(1==b.length&&a){var h=d.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(b,a);if(null!=f){var m=Math.round(d.snap(d.popupMenuHandler.triggerX/e-n)),k=Math.round(d.snap(d.popupMenuHandler.triggerY/e-r));d.cellsMoved(b,m-f.x,k-f.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&
+(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{var e=d.getSelectionCells();for(a=0;a<e.length;a++)if(d.getModel().isVertex(e[a])){var c=d.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=b.copiedSize.width,c.height=b.copiedSize.height,d.getModel().setGeometry(e[a],c))}}finally{d.getModel().endUpdate()}}},
+null,null,"Alt+Shit+V");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(){d.setSelectionCells(d.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){d.turnShapes(d.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices",
+function(){d.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,
+a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){d.enterGroup()},
+null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){d.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){d.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){d.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container","1"):d.setSelectionCell(d.groupCells(null,
+0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=d.getSelectionCell()||d.getModel().getRoot();
+b.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c="";if(mxUtils.isNode(d.value)){var f=d.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(b,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(d,c)});b.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell());
+null!=a&&d.openLink(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c=a.getLinkForCell(d)||"";b.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(d,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,b){a=mxUtils.trim(a);if(0<a.length){var c=
+null,f=d.getLinkTitle(a);null!=b&&0<b.length&&(c=b[0].iconUrl,f=b[0].name||b[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=d.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c),
+d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}})}).isEnabled=k;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var d=a.getSelectedElement(),c=a.getParentByName(d,"A",a.cellEditor.textarea),f="";if(null==c&&null!=d&&null!=d.getElementsByTagName)for(var e=d.getElementsByTagName("a"),n=0;n<e.length&&null==c;n++)e[n].textContent==
+d.textContent&&(a.selectNode(e[n]),c=e[n]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=k;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=
+a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var f=d.view.getState(c),e=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&d.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,e)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var e="1";d.stopEditing();
+d.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);d.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(d.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),d.cellLabelChanged(a.cell,d.sanitizeHtml(c));
+d.setCellStyles("html",e);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",e=d.getView().getState(d.getSelectionCell());
+null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");
+this.addAction("zoomOut",function(a){d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=
+a.y*d.view.scale-1,d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,
+(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-
+d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.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*d.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(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.isGridEnabled()});l.setEnabled(!1);
+l=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});l=this.addAction("collapseExpand",function(){var a=
+new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.foldingEnabled});l.isEnabled=k;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return d.pageVisible});
+l=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});
+l=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.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);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));l=mxUtils.bind(this,function(a,b,c,f){return this.addAction(a,function(){if(null!=c&&d.cellEditor.isContentEditing())c();else{d.stopEditing(!1);d.getModel().beginUpdate();try{d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
+b),(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&&
+d.replaceElement(a)})}finally{d.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(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
+this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
+"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
+this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),e=d.view.getState(a[0]),
+c=null!=e?e.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,
+"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),e="1";null!=a&&null!=d.getFoldingImage(a)&&(e="0");d.setCellStyles("collapsible",e);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",d.getSelectionCells()))});this.addAction("editStyle...",
+mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+
+"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var c=d.view.translate,f=d.view.scale,g=c.x,c=c.y,a=d.getModel().getParent(a),n=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=n;)g+=n.x,c+=n.y,a=d.getModel().getParent(a),n=
+d.getCellGeometry(a);g=Math.round(d.snap(d.popupMenuHandler.triggerX/f-g));f=Math.round(d.snap(d.popupMenuHandler.triggerY/f-c));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=d.getSelectionCells();if(null!=a){a=d.addAllEdges(a);d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var f=
+d.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,d.getModel().setGeometry(c,f))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",
+function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=d.getView().getState(d.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=d.cellEditor.saveSelection();b.showImageDialog(a,c,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,c,b);else{var e=d.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;d.getModel().beginUpdate();
+try{if(0==e.length){var n=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",n.x,n.y,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var r=d.view.getState(e[0]),k=null!=r?r.style:d.getCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",
+e):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==d.getSelectionCount()&&null!=c&&null!=b){var y=e[0],t=d.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=b,d.getModel().setGeometry(y,t))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
+(d.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");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,d,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,d,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,d,k){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;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,d){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,d){};DrawioFile.prototype.getPublicUrl=function(a){a(null)};
+DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,e){};DrawioFile.prototype.isMovable=function(){return!1};
+DrawioFile.prototype.move=function(a,b,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data};
+DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,e){var b=null!=e?e.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",
+this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",
+this.changeListener)};
+DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null,
+0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))};
+DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()};
+DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):
+null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))};
+DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();var k=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==k&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();
+null!=e&&e(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=k};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("."),d=0<e?a.substring(e):"",e=b.lastIndexOf(".");return d===(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,d){DrawioFile.call(this,a,b);this.title=e;this.mode=d?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,d){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 d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&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)}),d,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=":
@@ -2667,8 +2670,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none
 type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity",
 type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction",
 type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point",
-type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",
-type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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';
+type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",
+dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",
+dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0}];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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(a,c){if(null!=a){Editor.config=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;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));
 if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=
@@ -2677,17 +2681,17 @@ a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarW
 Editor.guid=function(){return Editor.s4()+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+Editor.s4()+Editor.s4()};Editor.prototype.useForeignObjectForMath=!1;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=
 b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:
 mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.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&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;
-this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=
+this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.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 c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):
 Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(H){}return!1};Editor.prototype.extractGraphModel=function(a,c){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){d.push(b[f]);break}0<d.length&&(b=d[0].getAttribute("data-mxgraph"),
 null!=b?(d=JSON.parse(b),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0]),b=this.graph.decompress(b),0<b.length&&(d=mxUtils.parseXml(b),a=d.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||c||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(d=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=d&&(b=this.graph.decompress(mxUtils.getTextContent(d)),null!=b&&0<b.length&&(a=mxUtils.parseXml(b).documentElement)));null==a||"mxGraphModel"==a.nodeName||c&&"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&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
+"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
 null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(a,c){a=null!=a?a:"https://math.draw.io/current/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};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"],"HTML-CSS":{imageFont:null},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){null!=this.graph.container&&this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script");
 if(null!=d&&0<d.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;d[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 c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,
-function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var h=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){h.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var m=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){m.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
+function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var k=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);
 mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var p=Format.prototype.init;Format.prototype.init=function(){p.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||
 "1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var u=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=u.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c=
 this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,
@@ -2714,45 +2718,45 @@ stroke:"#008a00",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#1ba1e2",font:"#ffffff"
 font:"#ffffff"},{fill:"#6d8764",stroke:"#6d8764",font:"#ffffff"},{fill:"#647687",stroke:"#647687",font:"#ffffff"},{fill:"#76608a",stroke:"#76608a",font:"#ffffff"},{fill:"#a0522d",stroke:"#a0522d",font:"#ffffff"}],[null,{fill:mxConstants.NONE,stroke:"#36393d"},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[null,{fill:"#f5f5f5",stroke:"#666666",
 gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},
 {fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded=
-!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(A){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));
+!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(B){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));
 f.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,e=0;e<b.length;e++)this.findCommonProperties(b[e],c,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==b.length&&0==e);0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var g=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,
 function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");
-c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>
-b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var l=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var h=n.length;h<c;h++)n.push(l);n=n.join(",");t.setCellStyles(b.dependentProps[a],n,t.getSelectionCells());
-f.push(b.dependentProps[a]);e.push(n)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height=
-"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),h.push({name:a,
-values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var l=g,r=0;null!=l.nextSibling;)if(l.nextSibling.getAttribute("data-pName")==a)l=l.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=n(a,"",t,0==r%2,k);d(a,f,t);l.parentNode.insertBefore(r,l.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
-function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var l=0;l<f;l++)k[l]=null!=c[l]?c[l]:null!=d?d:"";h.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function l(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,t,h){var v=n.dispName,w=n.type,y=document.createElement("tr");y.className="gePropRow"+
-(h?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=n.index&&(y.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,n));else if("bool"==w||"boolean"==
-w)x.appendChild(l(c,b,n));else if("enum"==w){var m=n.enumList;for(h=0;h<m.length;h++)if(v=m[h],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<m.length;g++){var k=m[g],l=document.createElement("option");l.value=mxUtils.htmlEntities(k.val);l.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(l)}e.value=
-b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,y,h)):"staticArr"==w?x.appendChild(k(c,b,n.subType,n.subDefVal,n.size,y,h)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value;null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"==
-w?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";if("int"==w||"float"==w)g.type="number",g.step="int"==w?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));n.isDeletable&&(h=mxUtils.button("-",mxUtils.bind(r,
-function(a){d(c,"",n,n.index);mxEvent.consume(a)})),h.style.height="16px",h.style.width="25px",h.style["float"]="right",h.className="geColorBtn",x.appendChild(h));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,h=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var m=
-document.createElement("img");m.src=Sidebar.prototype.expandedImage;y.appendChild(m);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){m.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else m.src=Sidebar.prototype.expandedImage,
-b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var B=!1,z=!1,q;for(q in c){var w=c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]||
-c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(n(q,u,w,B,z));B=!B}}for(y=0;y<h.length;y++)for(w=h[y],c=w.parentRow,b=0;b<w.values.length;b++)q=n(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size},
-0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f,e[g]);var k=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,
-a.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k,
-mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width=
-"36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,
-mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a,
-"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");
-null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var k=document.createElement("div");k.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(k));mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(k);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&
+c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],h=b.parentRow.nextSibling;h&&h.getAttribute("data-pName")==a;)g.push(h.getAttribute("data-pValue")),h=h.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length>
+b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var n=b.dependentPropsDefVal[a],m=b.dependentPropsVals[a];if(m.length>c)m=m.slice(0,c);else for(var k=m.length;k<c;k++)m.push(n);m=m.join(",");t.setCellStyles(b.dependentProps[a],m,t.getSelectionCells());
+f.push(b.dependentProps[a]);e.push(m)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height=
+"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,h){null!=c&&(c=c.split(","),k.push({name:a,
+values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:h}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var n=g,r=0;null!=n.nextSibling;)if(n.nextSibling.getAttribute("data-pName")==a)n=n.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=m(a,"",t,0==r%2,h);d(a,f,t);n.parentNode.insertBefore(r,n.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
+function h(a,c,b,d,f,e,g){if(0<f){var h=Array(f);c=null!=c?c.split(","):[];for(var n=0;n<f;n++)h[n]=null!=c[n]?c[n]:null!=d?d:"";k.push({name:a,values:h,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function n(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function m(c,b,m,t,k){var v=m.dispName,w=m.type,y=document.createElement("tr");y.className="gePropRow"+
+(k?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=m.index&&(y.setAttribute("data-index",m.index),v=(null!=v?v:"")+"["+m.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,m));else if("bool"==w||"boolean"==
+w)x.appendChild(n(c,b,m));else if("enum"==w){var l=m.enumList;for(k=0;k<l.length;k++)if(v=l[k],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<l.length;g++){var h=l[g],n=document.createElement("option");n.value=mxUtils.htmlEntities(h.val);n.innerHTML=mxUtils.htmlEntities(mxResources.get(h.dispName,null,h.dispName));e.appendChild(n)}e.value=
+b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,m)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,m.subType,m.subDefVal,m.countProperty,y,k)):"staticArr"==w?x.appendChild(h(c,b,m.subType,m.subDefVal,m.size,y,k)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value,a=0==a.length&&"string"!=w?0:a;m.allowAuto&&("auto"==a.trim().toLowerCase()?
+(a="auto",w="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=m.min&&a<m.min?a=m.min:null!=m.max&&a>m.max&&(a=m.max);a=mxUtils.htmlEntities(("int"==w?parseInt(a):a)+"");d(c,a,m)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";"int"!=w&&"float"!=w||m.allowAuto||(g.type="number",g.step="int"==w?"1":"any",null!=m.min&&(g.min=parseFloat(m.min)),null!=m.max&&(g.max=parseFloat(m.max)));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress",
+function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));m.isDeletable&&(k=mxUtils.button("-",mxUtils.bind(r,function(a){d(c,"",m,m.index);mxEvent.consume(a)})),k.style.height="16px",k.style.width="25px",k.style["float"]="right",k.className="geColorBtn",x.appendChild(k));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,k=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";
+v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var l=document.createElement("img");l.src=Sidebar.prototype.expandedImage;y.appendChild(l);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-
+1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else l.src=Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var A=!1,z=!1,q;for(q in c){var w=
+c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]||c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(m(q,u,w,A,z));A=!A}}for(y=0;y<k.length;y++)for(w=k[y],c=w.parentRow,b=0;b<w.values.length;b++)q=
+m(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size},0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f,
+e[g]);var h=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,
+a.font||mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR,
+null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?
+c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+
+g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);
+var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
+mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var h=document.createElement("div");h.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
+1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(h));mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(h);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&&
 (b=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,
 function(a){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):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==b?c.style.width="202px":
 (b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));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 k=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}k.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint;
+"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}n.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint;
 this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):b.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var c=this.graph.view.getState(a),c=null!=c?c.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.setChildGeometry=function(a,c){c.height=Math.max(c.height,20);if(1<c.height/20){var b=c.height%20;c.height+=10<b?20-b:-b}this.graph.getModel().setGeometry(a,
-c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var l=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=l.apply(this,arguments);if(null==
-c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var n=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){n.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
+c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var h=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=h.apply(this,arguments);if(null==
+c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var m=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){m.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||
 null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),
 this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var w=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){w.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++)if(null!=a.actions[c].open)if(this.isCustomLink(a.actions[c].open)){if(!this.customLinkClicked(a.actions[c].open))return}else this.openLink(a.actions[c].open);
 this.model.beginUpdate();try{for(c=0;c<a.actions.length;c++)this.handleLinkAction(a.actions[c])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(a){var c=[];null!=a.select&&this.isEnabled()&&(c=this.getCellsForAction(a.select),this.setSelectionCells(c));null!=a.highlight&&(c=this.getCellsForAction(a.highlight),this.highlightCells(c,a.highlight.color,a.highlight.duration,a.highlight.opacity));null!=a.toggle&&this.toggleCells(this.getCellsForAction(a.toggle));null!=a.show&&
 this.setCellsVisible(this.getCellsForAction(a.show),!0);null!=a.hide&&this.setCellsVisible(this.getCellsForAction(a.hide),!1);null!=a.scroll&&(c=this.getCellsForAction(a.scroll));0<c.length&&this.scrollCellToVisible(c[0])};Graph.prototype.getCellsForAction=function(a){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var d=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!=
-d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),k=0;k<a.length&&g;k++)var l=mxUtils.trim(a[k]).toLowerCase(),
-g=g&&(0==l.length||0<=mxUtils.indexOf(e,l));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f<
+d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),h=0;h<a.length&&g;h++)var n=mxUtils.trim(a[h]).toLowerCase(),
+g=g&&(0==n.length||0<=mxUtils.indexOf(e,n));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f<
 a.length;f++)this.highlightCell(a[f],c,b,d)};Graph.prototype.highlightCell=function(a,c,b,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),e=new mxCellHighlight(this,c,f,!1);null!=d&&(e.opacity=d);e.highlight(a);window.setTimeout(function(){null!=e.shape&&(mxUtils.setPrefixedStyle(e.shape.node.style,"transition","all 1200ms ease-in-out"),e.shape.node.style.opacity=0);window.setTimeout(function(){e.destroy()},
 1200)},b)}};Graph.prototype.addSvgShadow=function(a,c,b){b=null!=b?b:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");e.setAttribute("in","SourceAlpha");e.setAttribute("stdDeviation",this.svgShadowBlur);e.setAttribute("result","blur");f.appendChild(e);e=null!=d.createElementNS?
 d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");e.setAttribute("in","blur");e.setAttribute("dx",this.svgShadowSize);e.setAttribute("dy",this.svgShadowSize);e.setAttribute("result","offsetBlur");f.appendChild(e);e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");e.setAttribute("flood-color",this.svgShadowColor);e.setAttribute("flood-opacity",this.svgShadowOpacity);e.setAttribute("result","offsetColor");f.appendChild(e);
@@ -2766,244 +2770,245 @@ mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mx
 [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.gcp2=[SHAPES_PATH+"/mxGCP2.js",
 STENCIL_PATH+"/gcp2.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.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.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 v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1,
-Math.min(k,Math.max(parseInt(t.value),parseInt(v.value))));v.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,k=0,l=ga.get(),n=1/c.pageScale,r=y.checked;if(r)var n=parseInt(Q.value),h=parseInt(V.value),n=Math.min(l.height*h/(e.height/c.view.scale),l.width*n/(e.width/c.view.scale));else n=parseInt(p.value)/(100*c.pageScale),isNaN(n)&&(d=1/c.pageScale,p.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*
-d);l.height=Math.ceil(l.height*d);n*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*l.width,k-=e.y*l.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,n,l,0,g,k,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var w=b.writeHead;b.writeHead=function(c){w.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,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var k=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}b.open(null,null,f,!0)}else{l=c.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=r;b.appendGraph(c,n,g,k,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,
-W.value="100 %");var d=.75*d,e=v.value,g=t.value,k=!r.checked,n=null;k&&(k=e==l&&g==l);if(!k&&null!=a.pages&&a.pages.length){var h=0,k=a.pages.length-1;r.checked||(h=parseInt(e)-1,k=parseInt(g)-1);for(var w=h;w<=k;w++){var m=a.pages[w],e=m==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,h=!1,x=null,B=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(g=m.viewState.pageVisible,h=m.viewState.mathEnabled,x=m.viewState.background,
-B=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),x=m.mapping.diagramMap.get("background"),B=m.mapping.diagramMap.get("backgroundImage"),B=null!=B&&0<B.length?JSON.parse(B):null);e.background=x;e.backgroundImage=null!=B?new mxImage(B.src,B.width,B.height):null;e.pageVisible=g;e.mathEnabled=h;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?w+1:q.apply(this,arguments)};document.body.appendChild(e.container);
-a.updatePageRoot(m);e.model.setRoot(m.root)}n=b(e,n,w!=k);e!=f&&e.container.parentNode.removeChild(e.container)}}else n=b(f);n.mathEnabled&&(k=n.wnd.document,k.writeln('<script type="text/x-mathjax-config">'),k.writeln("MathJax.Hub.Config({"),k.writeln("showMathMenu: false,"),k.writeln('messageStyle: "none",'),k.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),k.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),k.writeln('"HTML-CSS": {'),
-k.writeln("imageFont: null"),k.writeln("},"),k.writeln("TeX: {"),k.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),k.writeln("},"),k.writeln("tex2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("},"),k.writeln("asciimath2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("}"),k.writeln("});"),c&&(k.writeln("MathJax.Hub.Queue(function () {"),k.writeln("window.print();"),k.writeln("});")),k.writeln("\x3c/script>"),k.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>'));
-n.closeDocument();!n.mathEnabled&&c&&PrintDialog.printPreview(n)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,l=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;";
-r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");n.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));n.appendChild(g);mxUtils.br(n);var h=r.cloneNode(!0);r.setAttribute("checked","checked");h.setAttribute("value","range");n.appendChild(h);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");n.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";
-v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";n.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));n.appendChild(g);var t=v.cloneNode(!0);n.appendChild(t);mxEvent.addListener(v,"focus",function(){h.checked=!0});mxEvent.addListener(t,"focus",function(){h.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==
-a.pages[g]){l=g+1;v.value=l;t.value=l;break}v.setAttribute("max",k);t.setAttribute("max",k);1<k&&e.appendChild(n);var w=document.createElement("div");w.style.marginBottom="10px";var m=document.createElement("input");m.style.marginRight="8px";m.setAttribute("value","adjust");m.setAttribute("type","radio");m.setAttribute("name","printZoom");w.appendChild(m);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));w.appendChild(g);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(){m.checked=!0});e.appendChild(w);var n=n.cloneNode(!1),y=m.cloneNode(!0);y.setAttribute("value","fit");m.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);n.appendChild(g);w=document.createElement("table");w.style.display="inline-block";var B=document.createElement("tbody"),
+[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 v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,h,n,m){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){w.value=Math.max(1,
+Math.min(h,Math.max(parseInt(w.value),parseInt(v.value))));v.value=Math.max(1,Math.min(h,Math.min(parseInt(w.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,h=0,n=ga.get(),m=1/c.pageScale,r=y.checked;if(r)var m=parseInt(Q.value),k=parseInt(V.value),m=Math.min(n.height*k/(e.height/c.view.scale),n.width*m/(e.width/c.view.scale));else m=parseInt(p.value)/(100*c.pageScale),isNaN(m)&&(d=1/c.pageScale,p.value="100 %");n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*
+d);n.height=Math.ceil(n.height*d);m*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*n.width,h-=e.y*n.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,m,n,0,g,h,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var t=b.writeHead;b.writeHead=function(c){t.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,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var h=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:h.className="geDisableMathJax";return h}}b.open(null,null,f,!0)}else{n=c.background;if(null==n||""==n||n==mxConstants.NONE)n="#ffffff";b.backgroundColor=n;b.autoOrigin=r;b.appendGraph(c,m,g,h,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1,
+W.value="100 %");var d=.75*d,e=v.value,g=w.value,h=!r.checked,m=null;h&&(h=e==n&&g==n);if(!h&&null!=a.pages&&a.pages.length){var k=0,h=a.pages.length-1;r.checked||(k=parseInt(e)-1,h=parseInt(g)-1);for(var t=k;t<=h;t++){var l=a.pages[t],e=l==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,k=!1,x=null,A=null;null==l.viewState&&null==l.mapping&&null==l.root&&a.updatePageRoot(l);null!=l.viewState?(g=l.viewState.pageVisible,k=l.viewState.mathEnabled,x=l.viewState.background,
+A=l.viewState.backgroundImage):null!=l.mapping&&null!=l.mapping.diagramMap&&(k="0"!=l.mapping.diagramMap.get("mathEnabled"),x=l.mapping.diagramMap.get("background"),A=l.mapping.diagramMap.get("backgroundImage"),A=null!=A&&0<A.length?JSON.parse(A):null);e.background=x;e.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;e.pageVisible=g;e.mathEnabled=k;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?t+1:q.apply(this,arguments)};document.body.appendChild(e.container);
+a.updatePageRoot(l);e.model.setRoot(l.root)}m=b(e,m,t!=h);e!=f&&e.container.parentNode.removeChild(e.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("showMathMenu: false,"),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('"HTML-CSS": {'),
+h.writeln("imageFont: null"),h.writeln("},"),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("});"),c&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>'));
+m.closeDocument();!m.mathEnabled&&c&&PrintDialog.printPreview(m)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var h=1,n=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;";
+r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");m.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));m.appendChild(g);mxUtils.br(m);var k=r.cloneNode(!0);r.setAttribute("checked","checked");k.setAttribute("value","range");m.appendChild(k);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");m.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";
+v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";m.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));m.appendChild(g);var w=v.cloneNode(!0);m.appendChild(w);mxEvent.addListener(v,"focus",function(){k.checked=!0});mxEvent.addListener(w,"focus",function(){k.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(w,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage==
+a.pages[g]){n=g+1;v.value=n;w.value=n;break}v.setAttribute("max",h);w.setAttribute("max",h);1<h&&e.appendChild(m);var t=document.createElement("div");t.style.marginBottom="10px";var l=document.createElement("input");l.style.marginRight="8px";l.setAttribute("value","adjust");l.setAttribute("type","radio");l.setAttribute("name","printZoom");t.appendChild(l);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));t.appendChild(g);var p=document.createElement("input");p.style.cssText=
+"margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";t.appendChild(p);mxEvent.addListener(p,"focus",function(){l.checked=!0});e.appendChild(t);var m=m.cloneNode(!1),y=l.cloneNode(!0);y.setAttribute("value","fit");l.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);m.appendChild(g);t=document.createElement("table");t.style.display="inline-block";var A=document.createElement("tbody"),
 q=document.createElement("tr"),u=q.cloneNode(!0),E=document.createElement("td"),S=E.cloneNode(!0),M=E.cloneNode(!0),N=E.cloneNode(!0),T=E.cloneNode(!0),D=E.cloneNode(!0);E.style.textAlign="right";N.style.textAlign="right";mxUtils.write(E,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";S.appendChild(Q);g=document.createElement("span");mxUtils.write(g,
-mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);B.appendChild(q);B.appendChild(u);w.appendChild(B);
-n.appendChild(w);e.appendChild(n);n=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));n.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));n.appendChild(g);
-var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";n.appendChild(W);e.appendChild(n);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&g.appendChild(n);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
-w.className="geBtn",g.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),w.className="geBtn",g.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});w.className="geBtn gePrimaryBtn";g.appendChild(w);a.editor.cancelFirst||g.appendChild(n);e.appendChild(g);this.container=e};var B=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)):(B.apply(this,arguments),null!=this.mathEnabled&&
+mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);A.appendChild(q);A.appendChild(u);t.appendChild(A);
+m.appendChild(t);e.appendChild(m);m=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));m.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));m.appendChild(g);
+var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";m.appendChild(W);e.appendChild(m);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&g.appendChild(m);a.isOffline()||(t=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),
+t.className="geBtn",g.appendChild(t));PrintDialog.previewEnabled&&(t=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),t.className="geBtn",g.appendChild(t));t=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});t.className="geBtn gePrimaryBtn";g.appendChild(t);a.editor.cancelFirst||g.appendChild(m);e.appendChild(g);this.container=e};var A=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)):(A.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))}})();
-var ErrorDialog=function(a,d,e,b,h,m,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=d){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="16px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";mxUtils.write(k,d);g.appendChild(k)}d=document.createElement("div");d.style.padding="6px";d.innerHTML=e;g.appendChild(d);e=document.createElement("div");
-e.style.marginTop="16px";e.style.textAlign="center";null!=m&&(d=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();m()}),d.className="geBtn",e.appendChild(d),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(b,function(){u&&a.hideDialog();null!=h&&h()});r.className="geBtn";e.appendChild(r);null!=p&&(b=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),b.className="geBtn gePrimaryBtn",
-e.appendChild(b));this.init=function(){r.focus()};g.appendChild(e);this.container=g};
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,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="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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";
+var ErrorDialog=function(a,b,e,d,k,l,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=b){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="16px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";mxUtils.write(n,b);g.appendChild(n)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=e;g.appendChild(b);e=document.createElement("div");
+e.style.marginTop="16px";e.style.textAlign="center";null!=l&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();l()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(d,function(){u&&a.hideDialog();null!=k&&k()});r.className="geBtn";e.appendChild(r);null!=p&&(d=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn",
+e.appendChild(d));this.init=function(){r.focus()};g.appendChild(e);this.container=g};
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";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;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(r){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
-null!=a&&6<a.length}catch(l){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}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(r){}})();
+null!=a&&6<a.length}catch(h){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}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(r){}})();
 EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
 this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.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,d){d=null!=d?d:24;var c=new Spinner({lines:12,
 length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=c.spin;c.spin=function(d,e){var g=!1;this.active||(f.call(this,d),this.active=!0,null!=e&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight=
 "10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),g.innerHTML=e+"...",d.appendChild(g),c.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,
 b+70-g.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,e)}));this.stop();return a}),g=!0);return g};var e=c.stop;c.stop=function(){e.call(this);this.active=!1;null!=c.status&&(c.status.parentNode.removeChild(c.status),c.status=null)};c.pause=function(){return function(){}};return c};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+
-(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1};
-var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("&lt;mxfile ");if(0<=d){var e=c.lastIndexOf("&lt;/mxfile&gt;");e>d&&(b=c.substring(d,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),l=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=
-l?mxUtils.getXml(l):""}catch(n){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();
-try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var l=this.updatePageRoot(new DiagramPage(d[e]));null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,l,0==e?l:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),
-this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,l,n,h,v,m){b=null!=
-b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var k=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(k);if(b.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(k,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}m?(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!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!l&&!r&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(l||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!=
-App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,h,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.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&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),e.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,l,n,h,v){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=l?l:!1);v=null!=v?v:this.getCurrentFile();l=this.editor.graph;
-if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){l=this.createTemporaryGraph(l.getStylesheet());var c=l.getGlobalVariable,f=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(l.container);l.model.setRoot(f.root)}a=this.createFileData(n,l,v,window.location.href,a,b,d,e,r,h);l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);return a};
-EditorUi.prototype.getHtml=function(a,b,d,e,r,l){l=null!=l?l:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=l?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;l=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",l);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!=r&&(r=r.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==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(n){}return!1};
+var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("&lt;mxfile ");if(0<=d){var e=c.lastIndexOf("&lt;/mxfile&gt;");e>d&&(b=c.substring(d,e+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!=
+h?mxUtils.getXml(h):""}catch(m){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate();
+try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(d[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));c.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])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,h,m,k,v,l){b=null!=
+b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var n=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(n);if(b.decompress(g)!=n)return n;n=a.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(n)}l?(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!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(m||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(h||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=
+App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,k,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var f=
+this.pages[d].mapping;if(this.currentPage!=this.pages[d]&&null!=f&&f.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel);f.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[d].node,this.editor.graph.compressNode(e));f.needsUpdate=!1}c.appendChild(this.pages[d].node)}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,h,m,k,v){r=null!=r?r:!0;m=null!=m?m:this.getXmlFileData(r,null!=h?h:!1);v=null!=v?v:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&&
+this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());var c=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(m,h,v,window.location.href,a,b,d,e,r,k);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml=
+function(a,b,d,e,r,h){h=null!=h?h:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=h?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(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!=r&&(r=r.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==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':
 ">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>':
 '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" 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,d,e,r){null!=r&&(r=r.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==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\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==r?'<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="'+r+'" 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 c=null!=a&&0<a.length?
 mxUtils.parseXml(a).documentElement:null;a=null!=c?this.editor.extractGraphModel(c,!0):null;null!=a&&(c=a);if(null!=c&&"mxfile"==c.nodeName&&(a=c.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=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(a){var c=this.getCurrentFile(),c=null!=c&&null!=
-c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,l,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r),
+c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,h,m){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r),
 f=c+"."+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,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d=
-this.editor.graph.pageVisible;null!=l&&(this.editor.graph.pageVisible=l);var f=this.createDownloadRequest(c,a,e,b,n);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var k=null,h=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var m=this.editor.graph.background;if(n||m==
-mxConstants.NONE)m=null;var p=this.editor.graph.getSvg(m,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,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 f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();h(a)}),e)}}catch(G){this.handleError(G)}};
+this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(c,a,e,b,m);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var n=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(n)}))});if("svg"==a){var l=this.editor.graph.background;if(m||l==
+mxConstants.NONE)l=null;var p=this.editor.graph.getSvg(l,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,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=c+".svg",n=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(G){this.handleError(G)}};
 EditorUi.prototype.createDownloadRequest=function(a,b,d,e,r){var c=this.editor.graph.getGraphBounds();d=this.getFileData(!0,null,null,null,d,"xmlpng"!=b);var f="";if(c.width*c.height>MAX_AREA||d.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 g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE);
 return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+c+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml,
-null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
-mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),l()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&&
+null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,h=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),
+mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),m()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();h()}));m();h()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&&
 !this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){editorUi.alert(a.tooltip)});return c}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null,
-null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var l=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var h=a.getAttribute("value");if(null!=h){var v=mxUtils.parseXml(h).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(n,v);else for(var m=v.attributes,p=0;p<m.length;p++)d.setAttributeForCell(n,m[p].nodeName,0<m[p].nodeValue.length?m[p].nodeValue:null)}}catch(x){null!=
-window.console&&console.log("Error in value for "+n.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(n,t)}catch(x){null!=window.console&&console.log("Error in style for "+n.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(n);null!=u&&d.addCellOverlay(n,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),
-A=d.getCellGeometry(n);if(null!=A){A=A.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?A.x+=J:"dy"==key?A.y+=J:"dw"==key?A.width+=J:"dh"==key?A.height+=J:A[key]=parseFloat(G[key])}d.model.setGeometry(n,A)}}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&
-(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(l=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=l&&this.chromelessResize&&this.chromelessResize(!0,l)}return b};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 d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML=
-"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();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.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!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(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);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!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(l){}this.handleError(r,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):d()}))}else d();return c};
-EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,l,n){};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 c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);
-return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;
-if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};
-};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.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)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";
-"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+c,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 c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var h=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);
-var v=h.parentNode.previousSibling;d=v.getAttribute("title");null!=d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title",
-mxResources.get("close"));p.setAttribute("valign","absmiddle");p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)m.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q=
-this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),h,b,a,a.getMode());mxEvent.consume(c)}),A=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",m.insertBefore(u,m.firstChild),v.style.paddingRight=18*m.childNodes.length+
-"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!=u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*m.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),m.insertBefore(t,m.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()||
-(v.style.paddingRight=18*m.childNodes.length+"px",t.parentNode.removeChild(t),t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=q.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}h.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);A(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=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 c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x;
-b.y-=q.view.translate.y;J(c,b)}mxEvent.consume(a)});h.style.border="3px solid transparent";mxEvent.addGestureListeners(h,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)":h.style.border="3px dotted rgb(254, 137, 12)",h.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&&(h.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),h.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(h,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&
-null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="visible",h.style.border="3px solid transparent",h.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(h,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":h.style.border="3px dotted rgb(254, 137, 12)";
-a.dataTransfer.dropEffect="copy";h.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"drop",mxUtils.bind(this,function(a){h.style.border="3px solid transparent";h.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,d,g,k,l,n,r,t,v){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,l,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,l,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 m=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(g.documentElement));e(k,h);b=b.concat(k);A(a);
-this.spinner.stop();m=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var l=g.documentElement.getElementsByTagName("diagram"),g=0;g<l.length;g++){var k=mxUtils.getTextContent(l[g]),n=this.stringToCells(this.editor.graph.decompress(k)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}m=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}m||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));
-null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,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(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(h.style.border="3px solid transparent",h.style.cursor="");a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));m.insertBefore(p,m.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(h,
-"dblclick",function(a){mxEvent.getSource(a)==h&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));m.insertBefore(d,m.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,
-mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),m.insertBefore(d,m.firstChild))}v.appendChild(m);v.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+
+null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var m=e.getCell(a.getAttribute("id"));if(null!=m){try{var k=a.getAttribute("value");if(null!=k){var v=mxUtils.parseXml(k).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(m,v);else for(var l=v.attributes,p=0;p<l.length;p++)d.setAttributeForCell(m,l[p].nodeName,0<l[p].nodeValue.length?l[p].nodeValue:null)}}catch(x){null!=
+window.console&&console.log("Error in value for "+m.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(m,t)}catch(x){null!=window.console&&console.log("Error in style for "+m.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(m);null!=u&&d.addCellOverlay(m,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),
+B=d.getCellGeometry(m);if(null!=B){B=B.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?B.x+=J:"dy"==key?B.y+=J:"dw"==key?B.width+=J:"dh"==key?B.height+=J:B[key]=parseFloat(G[key])}d.model.setGeometry(m,B)}}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&&
+(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename,
+d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),m=e.getMonth()+1,k=e.getDate(),v=e.getHours(),l=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(f+"-"+m+"-"+k+"-"+v+"-"+l+"-"+e));return c=mxResources.get("copyOf",[c])+d};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 d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();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.isChromelessView()||
+this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!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(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);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!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):
+"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,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):d()}))}else d();return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c=
+null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,h,m){};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 c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=
+LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=
+null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=
+function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.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)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+
+"image="+c,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 c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var v=k.parentNode.previousSibling;d=v.getAttribute("title");null!=
+d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(l.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title",mxResources.get("close"));p.setAttribute("valign","absmiddle");
+p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)l.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q=this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),
+k,b,a,a.getMode());mxEvent.consume(c)}),B=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",l.insertBefore(u,l.firstChild),v.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!=
+u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*l.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),l.insertBefore(t,l.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()||(v.style.paddingRight=18*l.childNodes.length+"px",t.parentNode.removeChild(t),
+t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*l.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,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(-c.x,-c.y)}k.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);
+B(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=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 c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x;b.y-=q.view.translate.y;J(c,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,K(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="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(c,d,g,h,m,n,r,t,v){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,m,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,m,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 l=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);B(a);this.spinner.stop();
+l=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var m=g.documentElement.getElementsByTagName("diagram"),g=0;g<m.length;g++){var h=mxUtils.getTextContent(m[g]),n=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}l=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&
+null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,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(c,d)}}));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()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));l.insertBefore(p,l.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(k,
+"dblclick",function(a){mxEvent.getSource(a)==k&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));l.insertBefore(d,l.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d,
+mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),l.insertBefore(d,l.firstChild))}v.appendChild(l);v.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+
 "image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(this.editor.graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};"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 c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,h){a=new ImageDialog(this,a,b,d,e,h);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 c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,h){a=new LibraryDialog(this,a,b,d,e,h);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");
+"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,k){a=new ImageDialog(this,a,b,d,e,k);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 c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,k){a=new LibraryDialog(this,a,b,d,e,k);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,d){var c=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(){c();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 h=window.location.hash;null!=h&&"#G"==h.substring(0,2)&&(h=h.substring(2),a+=' <a href="https://drive.google.com/open?id='+h+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message):
-null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,h,l,n,m,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,h,l,n,t,m,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=
-function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,h){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,h)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};
+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 null!=f.message?a=mxUtils.htmlEntities(f.message):
+null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,k,h,m,l,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,k,h,m,t,l,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert=
+function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,k){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,k)).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,d){var c=a.toDataURL("image/"+d);if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/"+d))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,d){var c="jpeg"==d?"jpg":d,f=this.getBaseFilename()+"."+c;a=this.createImageDataUri(a,b,d);this.saveData(f,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};
-EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,h){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height=
+EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,k){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)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&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof c.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],10):!1)?!1:f;if(f||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));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(v){}}else this.createEchoRequest(a,b,d,e,h).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,h,l){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=h?"&format="+h:"")+(null!=l?"&base64="+l:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=
-b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var h=1024*n,v=Math.min(h+1024,d),m=Array(v-h),p=0;h<v;++p,++h)m[p]=c[h].charCodeAt(0);e[n]=new Uint8Array(m)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,h,l,n){l=null!=l?l:!1;n=null!=n?n:"vsdx"!=h&&(!mxClient.IS_IOS||!navigator.standalone);h=this.getServiceCount(l);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)||
+try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(v){}}else this.createEchoRequest(a,b,d,e,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,k,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=k?"&format="+k:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=
+b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var k=1024*m,v=Math.min(k+1024,d),l=Array(v-k),p=0;k<v;++p,++k)l[p]=c[k].charCodeAt(0);e[m]=new Uint8Array(l)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,k,h,m){h=null!=h?h:!1;m=null!=m?m:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)||
 "image/svg"==d.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,d,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(t){this.handleError(t)}}))}catch(y){this.handleError(y)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),
-mxResources.get("download"),!1,l,n,null,1<h,4<h&&(!l||6>h)?3:4,a,d,e);this.showDialog(b.container,420,h==(mxClient.IS_IOS?0:1)?160:4<h?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){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+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
-'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var d=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),
+mxResources.get("download"),!1,h,m,null,1<k,4<k&&(!h||6>k)?3:4,a,d,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){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+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+
+'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&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=
 "4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);
 this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a);
-mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b,
-d,e,h){this.isLocalFileSave()?this.saveLocalFile(d,a,e,h,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,h,b,c)}),d,h,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,h,l,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==
-App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){l=null!=l?l:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,l,!0,c,d)}catch(z){this.handleError(z)}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,l,!0,c,d)}catch(z){this.handleError(z)}else this.handleError({message:mxResources.get("errorSavingFile")})}),
-function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,4<c?3:4,e,l,h);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,h,l){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,
-b,d,e,h,l,n,m,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,n,m,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",k=mxUtils.bind(this,function(a){this.spinner.stop();h&&a.setAttribute("content",this.getFileData(!0,
+mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));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,
+d,e,k){this.isLocalFileSave()?this.saveLocalFile(d,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,k,b,c)}),d,k,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,k,h,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c==
+App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,c,d)}catch(z){this.handleError(z)}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,c,d)}catch(z){this.handleError(z)}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,m,null,1<c,4<c?3:4,e,h,k);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a,
+b,d,e,k,h,m,l,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,m,l,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0,
 null,null,null,d,v));if(null!=this.editor.fontCss){var c=a.ownerDocument,c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(c)}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(){l?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,k,this.thumbImageCache)):k(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,h,l){l=null!=l?l:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",
-"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");l&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),h||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft=
+"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,n,this.thumbImageCache)):n(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,k,h){h=null!=h?h:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type",
+"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");h&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),k||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft=
 "24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+
 "...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}));
-mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=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.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}
 mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value",
-"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();n.style.padding=mxClient.IS_FF?
-"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,h,l,n,m){var c=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!=h&&0<h.length&&f.push("edit="+encodeURIComponent(h)),l&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=n?d="#U"+encodeURIComponent(n):(c=this.getCurrentFile(),m||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
-(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.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("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,h,l,n,m,v,p,q){this.getBasenames();var c={};""!=h&&h!=mxConstants.NONE&&(c.highlight=h);"auto"!==e&&(c.target=e);
-v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(l?"max-width:100%;":
+"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF?
+"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,k,h,m,l){var c=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!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=m?d="#U"+encodeURIComponent(m):(c=this.getCurrentFile(),l||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):
+(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.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("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,k,h,m,l,v,p,q){this.getBasenames();var c={};""!=k&&k!=mxConstants.NONE&&(c.highlight=k);"auto"!==e&&(c.target=e);
+v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];m&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);l&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(h?"max-width:100%;":
 "")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></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,d,e){var c=document.createElement("div");
 c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name",
-"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var h=document.createElement("span");mxUtils.write(h,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(h);mxUtils.br(g);g.appendChild(k);h=document.createElement("span");mxUtils.write(h,mxResources.get("publicDiagramUrl"));g.appendChild(h);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(h=document.createElement("a"),h.style.paddingLeft="12px",h.style.color="gray",h.setAttribute("href",
-"javascript:void(0);"),mxUtils.write(h,mxResources.get("share")),g.appendChild(h),mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),A=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"):
-x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,A.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,h,l){var c=document.createElement("div");c.style.whiteSpace=
-"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://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",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
-var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));k.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";k.appendChild(r);c.appendChild(k);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));
-k.appendChild(r);mxEvent.addListener(r,"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,p=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"),
-m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=e+"px",c.appendChild(p),mxUtils.br(c);var q=this.addLinkSection(c,l);d=null!=this.pages&&1<this.pages.length;var u=null;
-if(null==g||g.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var A=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,A),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(A,"change",function(){A.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled",
-"disabled"));K.checked&&A.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){h(q.getTarget(),q.getColor(),null==u?!0:u.checked,A.checked,J.getLink(),x.checked,null!=m?m.value:null,null!=p?p.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,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 g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),
-!0),f=this.editor.graph,h=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=h&&(h.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=h?h.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,h,l,n,m){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=
-this.editor.graph,g="jpeg"==m?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":");
-var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=m),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight=
-"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");l&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,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&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=m),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=m);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display=
-"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});n&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");
-mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==m&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;h(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked,
-!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,h){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
-c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),A=this.addCheckbox(c,mxResources.get("layers"),u,!u);A.style.marginLeft=q.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?
-(u&&A.removeAttribute("disabled"),q.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,r.checked,m.checked,t.checked,p.getLink(),A.checked)}),null,mxResources.get("embed"),h);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
-function(a,b,d,e,h,l,n,m){function c(c){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"+(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;");
-a&&(g+="max-width:100%;");var k="";d&&(k=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+k+(""!=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");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({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 g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var k=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));k.send(mxUtils.bind(this,function(){200<=k.getStatus()&&299>=k.getStatus()?c("data:image/png;base64,"+k.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
-b,d,e,h,l,n){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",m="";e&&(r="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"+
-(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");a&&(m+="max-width:100%;");this.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=m?' style="'+m+'"':"")+r+"/>")}))}else m="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
-(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}}})(this);"),m+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),m+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=m&&c.setAttribute("style",m),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+
+"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var l=this.getCurrentFile();null==d&&null!=l&&l.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")),g.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");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%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),B=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"):
+x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,B.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,k,h){var c=document.createElement("div");c.style.whiteSpace=
+"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://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",n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
+var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));n.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";n.appendChild(r);c.appendChild(n);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check"));
+n.appendChild(r);mxEvent.addListener(r,"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 t=null,l=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"),
+t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,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",c.appendChild(l),mxUtils.br(c);var p=this.addLinkSection(c,h);d=null!=this.pages&&1<this.pages.length;var q=null;
+if(null==g||g.constructor!=window.DriveFile||b)q=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var u=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,u),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled",
+"disabled"));K.checked&&u.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==q?!0:q.checked,u.checked,J.getLink(),x.checked,null!=t?t.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():
+document.execCommand("selectAll",!1,null)):p.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 g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),
+!0),f=this.editor.graph,n=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,k,h,m,l){m=null!=m?m:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=
+this.editor.graph,g="jpeg"==l?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(n);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":");
+var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight=
+"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");h&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,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&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=l),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=l);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display=
+"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});m&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank");
+mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==l&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;k(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked,
+!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";
+c.appendChild(g)}var n=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),B=this.addCheckbox(c,mxResources.get("layers"),u,!u);B.style.marginLeft=q.style.marginLeft;B.style.marginBottom="12px";B.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?
+(u&&B.removeAttribute("disabled"),q.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(n.checked,r.checked,l.checked,t.checked,p.getLink(),B.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage=
+function(a,b,d,e,k,h,m,l){function c(c){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 n="";d&&(n=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');m('<img src="'+c+'"'+n+(""!=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");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 g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?c("data:image/png;base64,"+n.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a,
+b,d,e,k,h,m){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var n=f[g].getAttribute("href");null!=n&&"#"==n.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",l="";e&&(r="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(c,mxUtils.bind(this,function(a){m('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+r+"/>")}))}else l="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+
+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=l&&c.setAttribute("style",l),m(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+
 " "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,d,e){a.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(b),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this,
 function(){e()}))}),0)):e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(d=b.decompress(mxUtils.getTextContent(c)),null!=d&&0<d.length&&(a=mxUtils.parseXml(d).documentElement))}d=
-this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(l){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=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),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),
-f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(B){null!=
-b&&b(B)}}),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,h,l,n){n=b.background;n==mxConstants.NONE&&(n=null);b=b.getSvg(n,null,null,null,null,l);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=h)this.convertImages(b,mxUtils.bind(this,function(a){h((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,h,l,n,m,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,h?this.getFileData(!0,null,null,null,d,m):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,l,n)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"),
-"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},l=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var k=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,k))]);f.push('"'+b[g].substring(k))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var h=1;h<b.length;h++){var m=b[h].indexOf(")"),p=null,q=b[h].indexOf("format(",m);0<q&&(p=c(b[h].substring(q+7,b[h].indexOf(")",q))));mxUtils.bind(this,function(a){if(null==
-e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==p||"embedded-opentype"==p||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==p||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==p||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==p||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==p||/(\.sfnt)($|\?)/i.test(a))c="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(c){e[a]=c;d--;l()}),mxUtils.bind(this,function(a){d--;l()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[h].substring(0,m)),p)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,h,l,n,m,p,q,y,t,u,H){l=null!=l?l:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&&
-(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=n?n:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),k=parseInt(d.getAttribute("height"));m=null!=m?m:1;null!=b&&(m=l?Math.min(1,Math.min(3*b/(4*k),b/g)):b/g);g=Math.ceil(m*g)+2*u;k=Math.ceil(m*k)+2*u;f.setAttribute("width",g);f.setAttribute("height",k);var n=f.getContext("2d");null!=
-c&&(n.beginPath(),n.rect(0,0,g,k),n.fillStyle=c,n.fill());n.scale(m,m);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/m,u/m);a(f)},0):(n.drawImage(e,u/m,u/m),a(f))}catch(P){null!=h&&h(P)}});e.onerror=function(a){null!=h&&h(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t,
-d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=h&&h(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||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,g){for(var k=a.getElementsByTagName(d),h=0;h<k.length;h++)mxUtils.bind(this,function(d){var k=e.convert(d.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var h=f[k];null==h?(c++,this.convertImageToDataUri(k,function(e){null!=e&&(f[k]=e,d.setAttribute(g,
-e));c--;0==c&&b(a)})):d.setAttribute(g,h)}else null!=k&&d.setAttribute(g,k)})(k[h])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,h,l){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);h=null!=h?h:!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 e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&&
-"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}l=null!=l?l:"data:image/png;base64,";e=l+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){h&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(v)}};EditorUi.prototype.isCorsEnabledForUrl=
+this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(h){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=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),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),
+f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(A){null!=
+b&&b(A)}}),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,k,h,m){m=b.background;m==mxConstants.NONE&&(m=null);b=b.getSvg(m,null,null,null,null,h);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);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,d,e,k,h,m,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,k?this.getFileData(!0,null,null,null,d,l):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,h,m)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"),
+"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},h=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var h=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var m=1;m<b.length;m++){var k=b[m].indexOf(")"),l=null,p=b[m].indexOf("format(",k);0<p&&(l=c(b[m].substring(p+7,b[m].indexOf(")",p))));mxUtils.bind(this,function(a){if(null==
+e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))c="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(c){e[a]=c;d--;h()}),mxUtils.bind(this,function(a){d--;h()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[m].substring(0,k)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,k,h,m,l,p,q,y,t,u,H){h=null!=h?h:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&&
+(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=m?m:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),m=parseInt(d.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=h?Math.min(1,Math.min(3*b/(4*m),b/g)):b/g);g=Math.ceil(l*g)+2*u;m=Math.ceil(l*m)+2*u;f.setAttribute("width",g);f.setAttribute("height",m);var n=f.getContext("2d");null!=
+c&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=c,n.fill());n.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/l,u/l);a(f)},0):(n.drawImage(e,u/l,u/l),a(f))}catch(P){null!=k&&k(P)}});e.onerror=function(a){null!=k&&k(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t,
+d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=k&&k(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||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,g){for(var h=a.getElementsByTagName(d),k=0;k<h.length;k++)mxUtils.bind(this,function(d){var h=e.convert(d.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=f[h];null==k?(c++,this.convertImageToDataUri(h,function(e){null!=e&&(f[h]=e,d.setAttribute(g,
+e));c--;0==c&&b(a)})):d.setAttribute(g,k)}else null!=h&&d.setAttribute(g,h)})(h[k])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,k,h){try{var c=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 e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&&
+"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}h=null!=h?h:"data:image/png;base64,";e=h+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){k&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(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?:\/\/[^\/]*\.draw\.io\/proxy/.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(n){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=
-function(a,b,d,e,h){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 g=mxUtils.parseXml(a),k=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)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++){m[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(m[a])),
-p=this.pages.length;null==r.getName()&&r.setName(mxResources.get("pageWithNumber",[p+1]));f.model.execute(new ChangePage(this,r,r,p))}}finally{f.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e))}}catch(z){throw h||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!=
-e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b,d)}catch(w){d(w)}else d({})});
-f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};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.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",
-c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,h,l,n){l=null!=l?l:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g,
-" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(h||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,d,l,!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,d,l,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
-this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),
-null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,l);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,l))}),mxUtils.bind(this,function(a){this.handleError(a)}));
-else{c=this.editor.graph;h=null;c.getModel().beginUpdate();try{h=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[h])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),h.value=a,c.updateCellSize(h),/\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(h.value)&&
-c.setLinkForCell(h,h.value),h.geometry.width+=c.gridSize,h.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[h]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
+function(a,b){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(m){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml=
+function(a,b,d,e,k){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 g=mxUtils.parseXml(a),n=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var l=n.getElementsByTagName("diagram");if(1==l.length)n=mxUtils.parseXml(f.decompress(mxUtils.getTextContent(l[0]))).documentElement;else if(1<l.length){f.model.beginUpdate();try{for(a=0;a<l.length;a++){l[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(l[a])),
+t=this.pages.length;null==r.getName()&&(r.setName(mxResources.get("pageWithNumber",[t+1])),r.needsUpdate=!0);f.model.execute(new ChangePage(this,r,r,t))}}finally{f.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(c=f.importGraphModel(n,b,d,e))}}catch(z){throw k||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,
+b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b,
+d)}catch(w){d(w)}else d({})});f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};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.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?
+mxscript("js/diagramly/Extensions.js",c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,k,h,m){h=null!=h?h:!0;m=null!=m?m:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&
+this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,
+d,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,d,h,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,
+null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),m,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,h);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,
+function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,h))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;k=null;c.getModel().beginUpdate();try{k=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[k])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),k.value=a,c.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)&&
+c.setLinkForCell(k,k.value),k.geometry.width+=c.gridSize,k.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
 function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&'{"state":"{\\"Properties\\":'==a.substring(0,26)};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&&
 this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a)}),
-null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,h,l,n,m,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=
-null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,q);null!=m&&m(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,h,l,"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,q);null!=m&&m(a)})):null!=p&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(c=!0,this.importVisio(p,g)):!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?g(a.responseText):null!=m&&m(null))}),n)):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==m||m(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,n;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);
-c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}n=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
-3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(n&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,h,l,n,m,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0,
-6)&&a[r].size>k){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,k=g.gridSize;h=null!=h?h:mxUtils.bind(this,function(a,b,d,e,f,g,k,h,l){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,h,l,c,t)});l=null!=l?l:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a,
-c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=m)m(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}l(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var l=a[c],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(l))if("image/"==l.type.substring(0,6))if("image/svg"==l.type.substring(0,9)){var m=a.target.result,p=m.indexOf(","),r=decodeURIComponent(escape(atob(m.substring(p+1)))),
-v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(m.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=parseFloat(f.getAttribute("width")),
-r=parseFloat(f.getAttribute("height")),t=f.getAttribute("viewBox");if(null==t||0==t.length)f.setAttribute("viewBox","0 0 "+n+" "+r);else if(isNaN(n)||isNaN(r)){var q=t.split(" ");3<q.length&&(n=parseFloat(q[2]),r=parseFloat(q[3]))}m=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,r)),w=h(m,l.type,b+c*k,d+c*k,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(r*x)),l.name);if(isNaN(n)||isNaN(r)){var u=new Image;u.onload=mxUtils.bind(this,function(){n=
-Math.max(1,u.width);r=Math.max(1,u.height);w[0].geometry.width=n;w[0].geometry.height=r;f.setAttribute("viewBox","0 0 "+n+" "+r);m=this.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return h(x,"text/xml",b+c*k,d+c*k,0,0,l.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r=
-!1;if("image/png"==l.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return h(I,"text/xml",b+c*k,d+c*k,y.width,y.height,l.name)}));r=!0}}r||(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,m){w(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var p=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/n,e/m)):1;return h(g,l.type,b+c*k,d+c*k,Math.round(n*p),Math.round(m*p),l.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else h(a.target.result,
-l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(l.name)||/(\.vs(x|sx?))($|\?)/i.test(l.name)?h(null,l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})},l):"image"==l.type.substring(0,5)?m.readAsDataURL(l):m.readAsText(l)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
+null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,k,h,m,l,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c=
+null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):c=this.importXml(a,d,e,q);null!=l&&l(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,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,d,e,q);null!=l&&l(a)})):null!=p&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?(c=!0,this.importVisio(p,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(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?g(a.responseText):null!=l&&l(null))}),m)):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==l||l(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,k;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);
+c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}k=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&
+3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,k,h,m,l,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0,
+6)&&a[r].size>n){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,n=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,d,e,f,g,h,k,m){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,d,e,f,g,h,k,m,c,t)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a,
+c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=l)l(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}h(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var h=a[c],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==m||m(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var l=a.target.result,p=l.indexOf(","),r=decodeURIComponent(escape(atob(l.substring(p+1)))),
+v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(l.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")),
+t=parseFloat(f.getAttribute("height")),r=f.getAttribute("viewBox");if(null==r||0==r.length)f.setAttribute("viewBox","0 0 "+m+" "+t);else if(isNaN(m)||isNaN(t)){var q=r.split(" ");3<q.length&&(m=parseFloat(q[2]),t=parseFloat(q[3]))}l=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,t)),w=k(l,h.type,b+c*n,d+c*n,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(t*x)),h.name);if(isNaN(m)||isNaN(t)){var u=new Image;u.onload=mxUtils.bind(this,function(){m=
+Math.max(1,u.width);t=Math.max(1,u.height);w[0].geometry.width=m;w[0].geometry.height=t;f.setAttribute("viewBox","0 0 "+m+" "+t);l=this.createSvgDataUri(mxUtils.getXml(f));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));g.setCellStyles("image",l,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return k(x,"text/xml",b+c*n,d+c*n,0,0,h.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r=
+!1;if("image/png"==h.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return k(I,"text/xml",b+c*n,d+c*n,y.width,y.height,h.name)}));r=!0}}r||(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(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var t=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/m,e/l)):1;return k(g,h.type,b+c*n,d+c*n,Math.round(m*t),Math.round(l*t),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result,
+h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(h.name)||/(\.vs(x|sx?))($|\?)/i.test(h.name)?k(null,h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})},h):"image"==h.type.substring(0,5)?l.readAsDataURL(h):l.readAsText(h)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},
 d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,
-340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,h,l){h=null!=h?h:this.maxImageSize;var c=Math.max(1,a.width),
-f=Math.max(1,a.height);if(e&&this.isResampleImage(b,l))try{var g=Math.max(c/h,f/h);if(1<g){var k=Math.round(c/g),m=Math.round(f/g),p=document.createElement("canvas");p.width=k;p.height=m;p.getContext("2d").drawImage(a,0,0,k,m);var r=p.toDataURL();if(r.length<b.length){var q=document.createElement("canvas");q.width=k;q.height=m;var u=q.toDataURL();r!==u&&(b=r,c=k,f=m)}}}catch(A){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var b=e,h=0;8>h;h++)b=1==(b&1)?3988292384^b>>>1:b>>>
-1,EditorUi.prototype.crcTable[e]=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.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,h){function c(a,c){var b=k;k+=c;return a.substring(b,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 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 k=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=h&&h();else if(c(a,4),"IHDR"!=c(a,4))null!=h&&h();else{c(a,17);h=a.substring(0,k);do{var m=f(a);if("IDAT"==c(a,4)){h=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);h+=g(d.length)+b+d+g(e^4294967295);h+=a.substring(k-8,a.length);break}h+=a.substring(k-8,k-4+m);c(a,m);c(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(h):Base64.encode(h,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+
+340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,k,h){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width),
+f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(c/k,f/k);if(1<g){var n=Math.round(c/g),l=Math.round(f/g),t=document.createElement("canvas");t.width=n;t.height=l;t.getContext("2d").drawImage(a,0,0,n,l);var p=t.toDataURL();if(p.length<b.length){var r=document.createElement("canvas");r.width=n;r.height=l;var q=r.toDataURL();p!==q&&(b=p,c=n,f=l)}}}catch(B){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var d=e,k=0;8>k;k++)d=1==(d&1)?3988292384^d>>>1:d>>>
+1,EditorUi.prototype.crcTable[e]=d;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.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,k){function c(a,c){var b=n;n+=c;return a.substring(b,n)}function f(a){a=c(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 n=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(c(a,4),"IHDR"!=c(a,4))null!=k&&k();else{c(a,17);k=a.substring(0,n);do{var l=f(a);if("IDAT"==c(a,4)){k=a.substring(0,n-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);k+=g(d.length)+b+d+g(e^4294967295);k+=a.substring(n-8,a.length);break}k+=a.substring(n-8,n-4+l);c(a,l);c(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+
 8,a+8+e);"zTXt"==b?(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&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(r){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};EditorUi.prototype.loadImage=function(a,b,d){var c=
-new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(x){a.handleError(x)}return b};var d=this.clearDefaultStyle;
-this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(c){c=null!=c?c:"";if(null!=a.pages&&null!=a.currentPage)for(var b=0;b<a.pages.length;b++)if(a.pages[b]==a.currentPage){0<b&&(c+=(0<c.length?"&":"?")+"page="+b);break}"1"==urlParams.dev&&(c+=(0<c.length?"&":"?")+"dev=1&drawdev=1");
-return e.apply(this,arguments)};var h=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};h.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=
-function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getGlobalVariable;b.getGlobalVariable=function(c){return"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var n=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||
-!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))n.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?b.getTitle():c);return c};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless||
+new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(x){a.handleError(x)}return c};var d=this.clearDefaultStyle;
+this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1");
+return e.apply(this,arguments)};var k=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};k.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct=
+function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:h.apply(this,arguments)};var m=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e||
+!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))m.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless||
 this.editor.editable){var q=function(){window.setTimeout(function(){u.innerHTML="&nbsp;";u.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||
-b.container.addEventListener("paste",mxUtils.bind(this,function(a){var c=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var b=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var g=f[index];if("file"===g.kind){if(c.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,
-6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML="&nbsp;";var y=!1;this.keyHandler.bindControlKey(88,null);
+b.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(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML="&nbsp;";var y=!1;this.keyHandler.bindControlKey(88,null);
 this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||y||(u.style.left=b.container.scrollLeft+10+"px",u.style.top=b.container.scrollTop+10+"px",b.container.appendChild(u),
 y=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){u.focus();document.execCommand("selectAll",!1,null)},0):(u.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!y||224!=c&&17!=c&&91!=c||(y=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),u.parentNode.removeChild(u),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(u,
 "copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u),q())}));mxEvent.addListener(u,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u,!0),q())}));mxEvent.addListener(u,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(u.innerHTML="&nbsp;",u.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,u);u.innerHTML="&nbsp;"}),0))}),!0);var t=this.isSelectionAllowed;this.isSelectionAllowed=
-function(a){return mxEvent.getSource(a)==u?!0:t.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 c=this.editor.graph,b=c.cellEditor.text2,d=null;null!=b&&(mxEvent.addListener(b,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),
-mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(b));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(b,"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,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c=
-0;c<a.length;c++)a[c]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var b=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)?this.loadImage(decodeURIComponent(b),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));c.insertImage(decodeURIComponent(b),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=
+function(a){return mxEvent.getSource(a)==u?!0:t.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){p=document.createElement("div");p.style.position="absolute";p.style.top="95px";p.style.left="250px";p.style.width="2000px";p.style.height="30px";p.style.background=
 "whiteSmoke";document.body.appendChild(p);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 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,
 z,!0);this.hRuler=new mxRuler(this.editor.graph,p,!1)}if("1"==urlParams.styledev){p=document.getElementById("geFooter");null!=p&&(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)})),p.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||"";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)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var A=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=A&&(A.parentNode.removeChild(A),A=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==
-A&&(!mxClient.IS_IE||10<document.documentMode)&&(A=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=A&&(A.parentNode.removeChild(A),A=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;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,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var l=null,d=c.getElementsByTagName("img");
-null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(l=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,l,null,n))});l&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;m()},mxEvent.isControlDown(a)):m()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this,
+function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),p.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 G=this.isSelectionAllowed;
+this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var B=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=B&&(B.parentNode.removeChild(B),B=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null==
+B&&(!mxClient.IS_IE||10<document.documentMode)&&(B=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=B&&(B.parentNode.removeChild(B),B=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;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,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var m=null,d=c.getElementsByTagName("img");
+null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(m=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,m,null,n))});m&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=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 c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(h,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"),
 f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");0<b&&(c=this.getPageById(a.substring(b+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=
 function(a){if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");if(a=this.getPageById(a.substring(c+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors();
@@ -3011,19 +3016,19 @@ this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]
 function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor();this.addListener("gridColorChanged",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.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),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 h=e.lastIndexOf("%3E");0<=h&&h<e.length-3&&(e=e.substring(0,h+3))}catch(v){}try{var c=b.getElementsByTagName("span"),
-m=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(m)&&(f=!0,e=m)}catch(v){}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))),
+c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),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 k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(v){}try{var c=b.getElementsByTagName("span"),
+l=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(v){}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(v){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()||
 "1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=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 b=this.extractGraphModelFromEvent(a);if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=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!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=b,d=d.getElementsByTagName("img"),
 0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&&
-(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)-
-3}else c=a.offsetTop,b=a.offsetLeft,d=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=c+"px";h.style.left=b+"px";h.style.width=Math.max(0,d-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 c=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}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=
+(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)-
+3}else b=a.offsetTop,c=a.offsetLeft,d=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=c+"px";h.style.width=Math.max(0,d-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 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 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(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,
 e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/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(d,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(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));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(B){this.handleError(B,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,d){var c=this.getCurrentFile(),
+c.target.result,a.name))}catch(A){this.handleError(A,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,d){var c=this.getCurrentFile(),
 e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d))});null!=a&&0<a.length&&(null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),
 null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}))))};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]),
 this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])),
@@ -3034,38 +3039,38 @@ this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&wind
 function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,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){if(f.source==(window.opener||window.parent)){var g=f.data,h=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&&
 ("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(R){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(I){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop();
-h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var k=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),k,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",
-result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
-try{h.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;k=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?n.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;n.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,k?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;n.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){n.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"==
-g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(k=0;k<this.pages.length;k++){var m=l;this.currentPage!=this.pages[k]&&(m=this.createTemporaryGraph(l.getStylesheet()),m.model.setRoot(this.pages[k].root));h+=this.pages[k].getName()+" "+m.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0);
-n.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"==
-g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);n.postMessage(JSON.stringify(b),"*")}),u=
+h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var m=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),m,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",
+result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));
+try{h.init()}catch(I){k.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;m=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.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,m?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"==
+g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(m=0;m<this.pages.length;m++){var n=l;this.currentPage!=this.pages[m]&&(n=this.createTemporaryGraph(l.getStylesheet()),n.model.setRoot(this.pages[m].root));h+=this.pages[m].getName()+" "+n.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0);
+k.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"==
+g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);k.postMessage(JSON.stringify(b),"*")}),u=
 mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);r(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),w=l.getGlobalVariable,x=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?1:w.apply(this,
 arguments)};document.body.appendChild(l.container);l.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,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?r("data:image/png;base64,"+a.getText()):
 u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);p=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))h=this.getXmlFileData(),p.xml=mxUtils.getXml(h),p.data=this.getFileData(null,null,!0,null,null,null,h),p.format=g.format;else if("html"==g.format)q=this.editor.getGraphXml(),p.data=this.getHtml(q,this.editor.graph),p.xml=mxUtils.getXml(q),p.format=g.format;
 else{mxSvgCanvas2D.prototype.foAltText=null;h=this.editor.graph.background;h==mxConstants.NONE&&(h=null);p.xml=this.getFileData(!0);p.format="svg";if(g.embedImages||null==g.embedImages){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==g.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);
-n.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));n.postMessage(JSON.stringify(p),"*")}));return}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}n.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave,
-this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(k=document.createElement("span"),mxUtils.write(k,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),
-null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(k),this.embedFilenameSpan=k),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!=
+k.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),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}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}k.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave,
+this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(m=document.createElement("span"),mxUtils.write(m,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"),
+null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(m),this.embedFilenameSpan=m),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!=
 urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=h();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=h();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||n.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&&
+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")),"*")});null!=g&&"function"===typeof g.substring&&
 "data:application/vnd.visio;base64,"==g.substring(0,34)?(h="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){C(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),h)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&
-299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));var n=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=
+299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));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,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,h=null,m=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,A=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C=
+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,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,k=null,l=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,B=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C=
 function(){null!=b?b(aa):(x.setSelectionCells(aa),x.scrollCellToVisible(x.getSelectionCell()))},I=x.getFreeInsertPoint(),R=I.x,P=I.y,I=P,X=null,U="auto",p=null,F=[],ea=null,ka=null,Y=0;Y<c.length&&"#"==c[Y].charAt(0);){a=c[Y];for(Y++;Y<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[Y].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[Y].substring(1)),Y++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<ba){var L=mxUtils.trim(a.substring(1,ba)),E=mxUtils.trim(a.substring(ba+1));"label"==L?X=x.sanitizeHtml(E):
-"style"==L?f=E:"parentstyle"==L?h=E:"identity"==L&&0<E.length&&"-"!=E?m=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?A=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null;
-if(null!=m||null!=p)for(var M=0;M<S.length;M++)m==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D,
+"style"==L?f=E:"parentstyle"==L?k=E:"identity"==L&&0<E.length&&"-"!=E?l=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?B=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null;
+if(null!=l||null!=p)for(var M=0;M<S.length;M++)l==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D,
 S[V],T[V]);x.setAttributeForCell(D,"placeholders","1");D.style=x.replacePlaceholders(D,D.style);for(N=0;N<F.length;N++)e[F[N].to][D.getAttribute(F[N].to)]=D;null!=ea&&"link"!=ea&&(x.setLinkForCell(D,D.getAttribute(ea)),x.setAttributeForCell(D,ea,null));x.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var ga=this.editor.graph.getPreferredSizeForCell(D);D.vertex&&(null!=z&&null!=D.getAttribute(z)&&(D.geometry.x=R+parseFloat(D.getAttribute(z))),null!=H&&null!=D.getAttribute(H)&&(D.geometry.y=
-P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+A);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,h),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W=
+P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+B);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,k),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W=
 d.slice(),aa=d.slice(),N=0;N<F.length;N++)for(var Z=F[N],M=0;M<d.length;M++){var D=d[M],pa=D.getAttribute(Z.from);if(null!=pa){x.setAttributeForCell(D,Z.from,null);for(var ra=pa.split(","),V=0;V<ra.length;V++){var fa=e[Z.to][ra[V]];null!=fa&&(X=Z.label,null!=Z.fromlabel&&(X=(D.getAttribute(Z.fromlabel)||"")+(X||"")),null!=Z.tolabel&&(X=(X||"")+(fa.getAttribute(Z.tolabel)||"")),aa.push(x.insertEdge(null,null,X||"",Z.invert?fa:D,Z.invert?D:fa,Z.style||x.createCurrentEdgeStyle())),mxUtils.remove(Z.invert?
 D:fa,W))}}}if(null!=ka)for(M=0;M<d.length;M++)for(D=d[M],V=0;V<ka.length;V++)x.setAttributeForCell(D,mxUtils.trim(ka[V]),null);var ma=new mxParallelEdgeLayout(x);ma.spacing=G;var ta=function(){ma.execute(x.getDefaultParent());for(var a=0;a<d.length;a++){var b=x.getCellGeometry(d[a]);b.x=Math.round(x.snap(b.x));b.y=Math.round(x.snap(b.y));"auto"==u&&(b.width=Math.round(x.snap(b.width)));"auto"==t&&(b.height=Math.round(x.snap(b.height)))}};if("circle"==U){var la=new mxCircleLayout(x);la.resetEdges=
-!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=A;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)},
-!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=A;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x);
-da.forceConstant=3*A;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c=
+!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=B;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)},
+!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=B;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x);
+da.forceConstant=3*B;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};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,480,130,!0,!0);a.init()};var p=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=p.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*
@@ -3076,122 +3081,122 @@ c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;b||null=
 var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()||
 null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));
 if(this.isAppCache()){var e=applicationCache;if(null!=e&&null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin="4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML=
-"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,h=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+
-'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=h&&(this.offlineStatus.innerHTML=
-b,h=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();
+"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,k=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+
+'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=k&&(this.offlineStatus.innerHTML=
+b,k=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();
 return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);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!=d);this.actions.get("makeCopy").setEnabled(null!=
 d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);
 this.actions.get("rename").setEnabled(null!=d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=
-null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,h,l){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,h,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*h/c.view.scale),m=Math.floor(g.height*
-h/c.view.scale);f.length<=MAX_REQUEST_SIZE&&k*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+m+"&border="+l+"&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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
-DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,d,e){this.ui=a;this.page=d;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
-function MovePage(a,d,e){this.ui=a;this.oldIndex=d;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,d){this.ui=a;this.previousPage=this.page=d;this.neverShown=!0;null!=d&&(this.neverShown=null==d.viewState,this.ui.updatePageRoot(d))}
-SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,d=this.ui.editor,e=d.graph,b=d.graph.compress(e.zapGremlins(mxUtils.getXml(d.getGraphXml(!0))));mxUtils.setTextContent(a.node,b);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root);
-e.setViewState(a.viewState);d.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);d.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());d.graph.fireEvent(new mxEventObject(mxEvent.ROOT));d.fireEvent(new mxEventObject("pageSelected","change",this))}};
-function ChangePage(a,d,e,b){SelectPage.call(this,a,e);this.relatedPage=d;this.index=b;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
+null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,k,h){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),l=Math.floor(g.width*k/c.view.scale),p=Math.floor(g.height*
+k/c.view.scale);f.length<=MAX_REQUEST_SIZE&&l*p<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+p+"&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",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
+DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
+function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
+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))}
+SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,e=b.graph,d=b.graph.compress(e.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root);
+e.setViewState(a.viewState);b.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);b.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};
+function ChangePage(a,b,e,d){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
 ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
-EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var d=0;d<this.pages.length;d++)if(this.pages[d]==this.currentPage){a=d;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var d=0;d<this.pages.length;d++)if(this.pages[d].getId()==a)return this.pages[d];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,d=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)}d.apply(a.view,arguments)});var e=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
+EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){a=b;break}return a};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 d=this.tabContainer.style.height;this.tabContainer.style.height=
+null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";d!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&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),e=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&
-this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,d){for(var e=d.getProperty("edit").changes,h=0;h<e.length;h++)if(e[h]instanceof SelectPage||e[h]instanceof RenamePage||e[h]instanceof MovePage||e[h]instanceof mxRootChange){b();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
-Graph.prototype.createViewState=function(a){var d=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),b=parseFloat(a.getAttribute("pageWidth")),h=parseFloat(a.getAttribute("pageHeight")),m=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):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.isLightboxView()?!1:null!=d?"0"!=d:this.defaultPageVisible,background:null!=m&&0<m.length?m:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(b)||isNaN(h)?this.pageFormat:new mxRectangle(0,0,b,b),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"),
-selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
-Graph.prototype.saveViewState=function(a,d){d.setAttribute("grid",null==a||a.gridEnabled?"1":"0");d.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);d.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");d.setAttribute("tooltips",null==a||a.tooltips?"1":"0");d.setAttribute("connect",null==a||a.connect?"1":"0");d.setAttribute("arrows",null==a||a.arrows?"1":"0");d.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");d.setAttribute("page",null==a&&this.defaultPageVisible||
-null!=a&&a.pageVisible?"1":"0");d.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(d.setAttribute("pageWidth",e.width),d.setAttribute("pageHeight",e.height));d.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&d.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));d.setAttribute("math",null!=a&&a.mathEnabled?
-"1":"0");d.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")};
+this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,k=0;k<e.length;k++)if(e[k]instanceof SelectPage||e[k]instanceof RenamePage||e[k]instanceof MovePage||e[k]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)};
+Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),k=parseFloat(a.getAttribute("pageHeight")),l=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):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.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(k)?mxSettings.getPageFormat():new mxRectangle(0,0,d,k),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==
+a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}};
+Graph.prototype.saveViewState=function(a,b){b.setAttribute("grid",null==a||a.gridEnabled?"1":"0");b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");b.setAttribute("tooltips",null==a||a.tooltips?"1":"0");b.setAttribute("connect",null==a||a.connect?"1":"0");b.setAttribute("arrows",null==a||a.arrows?"1":"0");b.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");b.setAttribute("page",null==a&&this.defaultPageVisible||
+null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(b.setAttribute("pageWidth",e.width),b.setAttribute("pageHeight",e.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow",
+null!=a&&a.shadowVisible?"1":"0")};
 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}};
 Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat=
 a.pageFormat,this.view.currentRoot=a.currentRoot,this.defaultParent=a.defaultParent,this.connectionArrowsEnabled=a.arrows,this.setTooltips(a.tooltips),this.setConnectable(a.connect),this.view.scale=null!=a.scale?a.scale:1,null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null),null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer()),null!=a.translate&&(this.view.translate=a.translate)):
 (this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=!0,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat=mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.background=this.defaultGraphBackground,this.backgroundImage=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml=
-null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var d=this.editor.extractGraphModel(a.node);if(null!=d){a.graphModelNode=d;a.viewState=this.editor.graph.createViewState(d);var e=new mxCodec(d.ownerDocument);a.root=e.decode(d).root}else a.root=this.editor.graph.model.createRoot()}return a};
-EditorUi.prototype.selectPage=function(a,d){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);d=null!=d?d:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var b=new SelectPage(this,a);b.execute();e.add(b);e.notify();this.editor.graph.tooltipHandler.hide();d||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))};
-EditorUi.prototype.selectNextPage=function(a){var d=this.currentPage;null!=d&&null!=this.pages&&(d=mxUtils.indexOf(this.pages,d),a?this.selectPage(this.pages[mxUtils.mod(d+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(d-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,d){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();d=null!=d?d:this.pages.length;var e=new ChangePage(this,a,a,d);this.editor.graph.model.execute(e)}return a};
-EditorUi.prototype.createPage=function(a){var d=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));d.setName(null!=a?a:this.createPageName());return d};EditorUi.prototype.createPageName=function(){for(var a={},d=0;d<this.pages.length;d++){var e=this.pages[d].getName();null!=e&&0<e.length&&(a[e]=e)}d=this.pages.length;do e=mxResources.get("pageWithNumber",[++d]);while(null!=a[e]);return e};
-EditorUi.prototype.removePage=function(a){var d=this.editor.graph;if(d.isEnabled()){d.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var b=mxUtils.indexOf(this.pages,a);b==this.pages.length-1?b--:b++;e=this.pages[b]}else e=this.insertPage(),d.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));d.model.execute(new ChangePage(this,a,e))}finally{d.model.endUpdate()}}return a};
-EditorUi.prototype.duplicatePage=function(a,d){var e=this.editor.graph,b=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),b=a.node.cloneNode(!1),b.removeAttribute("id"),b=new DiagramPage(b),b.root=e.cloneCells([e.model.root])[0],b.viewState=e.getViewState(),b.viewState.scale=1,b.viewState.scrollLeft=null,b.viewState.scrollTop=null,b.viewState.currentRoot=null,b.viewState.defaultParent=null,b.setName(d),b=this.insertPage(b,mxUtils.indexOf(this.pages,a)+1));return b};
-EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var d=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(d){null!=d&&0<d.length&&this.editor.graph.model.execute(new RenamePage(this,a,d))}),mxResources.get("rename"));this.showDialog(d.container,300,80,!0,!0);d.init()}return a};EditorUi.prototype.movePage=function(a,d){this.editor.graph.model.execute(new MovePage(this,a,d))};
+null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var b=this.editor.extractGraphModel(a.node);if(null!=b){a.graphModelNode=b;a.viewState=this.editor.graph.createViewState(b);var e=new mxCodec(b.ownerDocument);a.root=e.decode(b).root}else a.root=this.editor.graph.model.createRoot()}return a};
+EditorUi.prototype.selectPage=function(a,b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var d=new SelectPage(this,a);d.execute();e.add(d);e.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))};
+EditorUi.prototype.selectNextPage=function(a){var b=this.currentPage;null!=b&&null!=this.pages&&(b=mxUtils.indexOf(this.pages,b),a?this.selectPage(this.pages[mxUtils.mod(b+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(b-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,b){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();b=null!=b?b:this.pages.length;var e=new ChangePage(this,a,a,b);this.editor.graph.model.execute(e)}return a};
+EditorUi.prototype.createPage=function(a){var b=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));b.setName(null!=a?a:this.createPageName());return b};EditorUi.prototype.createPageName=function(){for(var a={},b=0;b<this.pages.length;b++){var e=this.pages[b].getName();null!=e&&0<e.length&&(a[e]=e)}b=this.pages.length;do e=mxResources.get("pageWithNumber",[++b]);while(null!=a[e]);return e};
+EditorUi.prototype.removePage=function(a){var b=this.editor.graph;if(b.isEnabled()){b.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var d=mxUtils.indexOf(this.pages,a);d==this.pages.length-1?d--:d++;e=this.pages[d]}else e=this.insertPage(),b.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));b.model.execute(new ChangePage(this,a,e))}finally{b.model.endUpdate()}}return a};
+EditorUi.prototype.duplicatePage=function(a,b){var e=this.editor.graph,d=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),d=a.node.cloneNode(!1),d.removeAttribute("id"),d=new DiagramPage(d),d.root=e.cloneCells([e.model.root])[0],d.viewState=e.getViewState(),d.viewState.scale=1,d.viewState.scrollLeft=null,d.viewState.scrollTop=null,d.viewState.currentRoot=null,d.viewState.defaultParent=null,d.setName(b),d=this.insertPage(d,mxUtils.indexOf(this.pages,a)+1));return d};
+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,d=document.createElement("div");d.style.position="relative";d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.verticalAlign="top";d.style.height=this.tabContainer.style.height;d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.fontSize="12px";d.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,b=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
-e)/this.pages.length)+1),h=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(b,e){this.pages[b]==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(c){a.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),h=b):mxEvent.consume(c)}));mxEvent.addListener(e,
-"dragend",mxUtils.bind(this,function(a){h=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=h&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){null!=h&&b!=h&&this.movePage(h,b);a.stopPropagation();a.preventDefault()}));d.appendChild(e)})(m,this.createTabForPage(this.pages[m],b,this.pages[m]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(d);
-b=this.createPageMenuTab();this.tabContainer.appendChild(b);b=null;this.isPageInsertTabVisible()&&(b=this.createPageInsertTab(),this.tabContainer.appendChild(b));if(d.clientWidth>this.tabContainer.clientWidth-e){null!=b&&(b.style.position="absolute",b.style.right="0px",d.style.marginRight="30px");var p=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);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 u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));d.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){d.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p,
-0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){d.scrollLeft+=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.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 d=document.createElement("div");d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.whiteSpace="nowrap";d.style.boxSizing="border-box";d.style.position="relative";d.style.overflow="hidden";d.style.marginLeft="-1px";d.style.height=this.tabContainer.clientHeight+"px";d.style.padding="8px 4px 8px 4px";d.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";d.style.borderBottomStyle="solid";d.style.backgroundColor=this.tabContainer.style.backgroundColor;
-d.style.cursor="move";d.style.color="gray";a&&(mxEvent.addListener(d,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(d.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(d,"mouseleave",mxUtils.bind(this,function(a){d.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return d};
-EditorUi.prototype.createControlTab=function(a,d){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=d;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
-EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var d=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this,
+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.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-
+e)/this.pages.length)+1),k=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",d.style.fontWeight="bold",d.style.borderTopStyle="none"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=c):mxEvent.consume(b)}));mxEvent.addListener(d,
+"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=k&&c!=k&&this.movePage(k,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(l,this.createTabForPage(this.pages[l],d,this.pages[l]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b);
+d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var p=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);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 u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p,
+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,u-20);mxUtils.setOpacity(p,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="move";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};
+EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var b=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this,
 function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var e=this.currentPage;null!=e&&(a.addSeparator(b),a.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(e)}),b),a.addItem(mxResources.get("rename"),
-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))}}));d.div.className+=" geMenubarMenu";d.smartSeparators=!0;d.showDisabled=!0;d.autoExpand=!0;d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d,arguments);d.destroy()});var b=mxEvent.getClientX(a),h=mxEvent.getClientY(a);d.popup(b,h,null,a);this.setCurrentMenu(d);
+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 d=mxEvent.getClientX(a),k=mxEvent.getClientY(a);b.popup(d,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,d,e){e=this.createTab(e);var b=a.getName();e.setAttribute("title",b);mxUtils.write(e,b);e.style.maxWidth=d+"px";e.style.width=d+"px";this.addTabListeners(a,e);42<d&&(e.style.textOverflow="ellipsis");return e};
-EditorUi.prototype.addTabListeners=function(a,d){mxEvent.disableContextMenu(d);var e=this.editor.graph;mxEvent.addListener(d,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var b=!1,h=!1;mxEvent.addGestureListeners(d,mxUtils.bind(this,function(d){b=null!=this.currentMenu;h=a==this.currentPage;e.isMouseDown||h||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&h||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu();
-this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!b){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(m),u=mxEvent.getClientY(m);p.popup(q,u,null,m);this.setCurrentMenu(p,d)}mxEvent.consume(m)}}))};
-EditorUi.prototype.createPageMenu=function(a,d){return mxUtils.bind(this,function(e,b){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),b);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),b);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,d)}),b);e.addSeparator(b);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
-mxResources.get("copyOf",[a.getName()]))}),b)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(d){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.oldIndex;b.oldIndex=b.newIndex;b.newIndex=a;return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.previous;b.previous=b.name;b.name=a;return b};mxCodecRegistry.register(a)})();
-(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),d="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,b,h){h.setAttribute("relatedPage",b.relatedPage.getId());null==b.index&&(h.setAttribute("name",b.relatedPage.getName()),null!=b.relatedPage.viewState&&h.setAttribute("viewState",JSON.stringify(b.relatedPage.viewState,function(a,b){return 0>mxUtils.indexOf(d,
-a)?b:void 0})),null!=b.relatedPage.root&&a.encodeCell(b.relatedPage.root,h));return h};a.beforeDecode=function(a,b,d){d.ui=a.ui;d.relatedPage=d.ui.getPageById(b.getAttribute("relatedPage"));if(null==d.relatedPage){var e=b.ownerDocument.createElement("diagram");e.setAttribute("id",b.getAttribute("relatedPage"));e.setAttribute("name",b.getAttribute("name"));d.relatedPage=new DiagramPage(e);e=b.getAttribute("viewState");null!=e&&(d.relatedPage.viewState=JSON.parse(e),b.removeAttribute("viewState"));
-b=b.cloneNode(!0);e=b.firstChild;if(null!=e)for(d.relatedPage.root=a.decodeCell(e,!1),d=e.nextSibling,e.parentNode.removeChild(e),e=d;null!=e;){d=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var h=e.getAttribute("id");null==a.lookup(h)&&a.decodeCell(e)}e.parentNode.removeChild(e);e=d}}return b};a.afterDecode=function(a,b,d){d.index=d.previousIndex;return d};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";EditorUi.prototype.altShiftActions[68]=
-"selectDescendants";var d=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,b,e,q,u){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=e.slice(),f=[],g=0;g<e.length;g++){var h=this.view.getState(e[g]),m=null!=h?h.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(m,"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=c;e=d.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return n.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b="tree"==(null!=
-b?b.style:l.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b=null!=(null!=b?b.style:l.getCellStyle(a)).childLayout);return b}function q(a){a=l.view.getState(a);if(null!=a){var b=l.getIncomingEdges(a.cell);if(0<b.length&&(b=l.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 u(a,b){b=null!=b?b:!0;l.model.beginUpdate();try{var d=l.model.getParent(a),c=l.getIncomingEdges(a),e=l.cloneCells([c[0],a]);l.model.setTerminal(e[0],l.model.getTerminal(c[0],!0),!0);var f=q(a),g=d.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;l.view.currentRoot!=d&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=l.view.getState(a),k=l.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=l.getOutgoingEdges(l.model.getTerminal(c[0],!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH||
-f==mxConstants.DIRECTION_NORTH,t=g=c=0;t<m.length;t++){var r=l.model.getTerminal(m[t],!1);if(f==q(r)){var x=l.view.getState(r);r!=a&&null!=x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY())&&mxUtils.intersects(n,x)&&(c=10+Math.max(c,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/k),g=10+Math.max(g,(Math.min(n.y+n.height,x.y+x.height)-Math.max(n.y,x.y))/k))}}p?g=0:c=0;for(t=0;t<m.length;t++)if(r=l.model.getTerminal(m[t],!1),f==q(r)&&(x=l.view.getState(r),r!=a&&null!=
-x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY()))){var u=[];l.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});l.moveCells(u,(b?1:-1)*c,(b?1:-1)*g)}}}return l.addCells(e,d)}finally{l.model.endUpdate()}}function c(a){l.model.beginUpdate();try{var b=q(a),c=l.getIncomingEdges(a),d=l.cloneCells([c[0],a]);l.model.setTerminal(c[0],d[1],!1);l.model.setTerminal(d[0],d[1],!0);l.model.setTerminal(d[0],a,!1);var e=l.model.getParent(a),f=e.geometry,g=[];l.view.currentRoot!=
-e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);l.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);l.moveCells(g,h,k);return l.addCells(d,e)}finally{l.model.endUpdate()}}function f(a){l.model.beginUpdate();try{var b=l.model.getParent(a),d=l.getIncomingEdges(a),c=l.cloneCells([d[0],
-a]);l.model.setTerminal(c[0],a,!0);var d=l.getOutgoingEdges(a),e=b.geometry,f=[];l.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<d.length;g++){var h=l.model.getTerminal(d[g],!1);null!=h&&f.push(h)}var k=l.view.getBounds(f),n=q(a),m=l.view.translate,p=l.view.scale;n==mxConstants.DIRECTION_SOUTH?(c[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x-e.x+10,c[1].geometry.y+=a.geometry.height-e.y+40):n==mxConstants.DIRECTION_NORTH?(c[1].geometry.x=
-null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x+-e.x+10,c[1].geometry.y-=c[1].geometry.height-e.y+40):(c[1].geometry.x=n==mxConstants.DIRECTION_WEST?c[1].geometry.x-(c[1].geometry.width-e.x+40):c[1].geometry.x+(a.geometry.width-e.x+40),c[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-c[1].geometry.height)/2:(k.y+k.height)/p-m.y+-e.y+10);return l.addCells(c,b)}finally{l.model.endUpdate()}}function g(a,b,c){a=l.getOutgoingEdges(a);c=l.view.getState(c);var d=
-[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=l.view.getState(l.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 k(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?r.actions.get("selectParent").funct():
-c==b?(d=l.getOutgoingEdges(a),null!=d&&0<d.length&&l.setSelectionCell(l.model.getTerminal(d[0],!1))):(c=l.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(l.model.getTerminal(c[0],!0),d,a),c=l.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&&l.setSelectionCell(d[c].cell)))))}var r=this,l=r.editor.graph,n=l.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings");
-mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.apply(this,arguments);if(1==l.getSelectionCount()){c=l.getSelectionCell();var e=l.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(l.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(l.getSelectionCell())&&(a.addSeparator(),0<l.getIncomingEdges(c).length&&
-this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};r.actions.addAction("selectChildren",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+X");r.actions.addAction("selectSiblings",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);if(null!=a&&0<a.length&&
-(a=l.getOutgoingEdges(l.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+S");r.actions.addAction("selectParent",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);null!=a&&0<a.length&&l.setSelectionCell(l.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");r.actions.addAction("selectDescendants",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=
-l.getSelectionCell(),b=[];l.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});l.setSelectionCells(b)}},null,null,"Alt+Shift+D");var v=l.removeCells;l.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];n.isEdge(g)&&d(g)&&(e.push(g),g=n.getTerminal(g,!1));b(g)?(l.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=l.getIncomingEdges(a[f]),
-a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var B=l.duplicateCells;l.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=l.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=l.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=B.call(this,a,c);if(h.length==
-a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=l.getIncomingEdges(h[e]),g=l.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var n=this.cloneCells([g[0]])[0];this.addEdge(n,l.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var y=l.moveCells;l.moveCells=function(a,c,d,e,f,g,h){var k=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])||l.model.isEdge(a[q])&&null==l.model.getTerminal(a[q],!0)){f=l.model.getParent(a[q]);break}if(null!=n&&f!=n&&null!=this.view.getState(a[0])){var t=l.getIncomingEdges(a[0]);if(0<t.length){var r=l.view.getState(l.model.getTerminal(t[0],!0));if(null!=r){var u=l.view.getState(n);null!=u&&(c=(u.getCenterX()-r.getCenterX())/l.view.scale,d=(u.getCenterY()-r.getCenterY())/l.view.scale)}}}}k=y.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(n)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[q],!0))&&this.model.setTerminal(k[q],n,!0);else if(b(a[q])&&(t=l.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==l.getIncomingEdges(k[q]).length){m=n;if(null==m||m==l.model.getParent(a[q]))m=l.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,l.getDefaultParent(),m,k[q])}}finally{this.model.endUpdate()}return k};
-if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=l.model,g=null;f.beginUpdate();try{if(g=t.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=l.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"),
-83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(l.isEnabled()&&!l.isEditing()&&b(l.getSelectionCell())&&1==l.getSelectionCount()){var d=null;0<l.getIncomingEdges(l.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(l.getSelectionCell()):f(l.getSelectionCell()):13==a.which&&(d=u(l.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&l.model.isEdge(d[0])?l.setSelectionCell(l.model.getTerminal(d[0],!1)):l.setSelectionCell(d[d.length-
-1]),null!=r.hoverIcons&&r.hoverIcons.update(l.view.getState(l.getSelectionCell())),l.startEditingAtCell(l.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_EAST),
-mxEvent.consume(a)):40==a.keyCode&&(k(l.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=l.connectVertex;l.connectVertex=function(a,d,e,g,h,k){var n=l.getIncomingEdges(a);return b(a)&&0<n.length?(e=q(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):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):
-G.call(this,a,d,e,g,h,k)};l.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&l.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 A=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){A.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=
+EditorUi.prototype.createTabForPage=function(a,b,e){e=this.createTab(e);var d=a.getName();e.setAttribute("title",d);mxUtils.write(e,d);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 d=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=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)||!d){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(l),u=mxEvent.getClientY(l);p.popup(q,u,null,l);this.setCurrentMenu(p,b)}mxEvent.consume(l)}}))};
+EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a,
+mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})();
+(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,k){k.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(k.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&k.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b,
+a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,k));return k};a.beforeDecode=function(a,b,k){k.ui=a.ui;k.relatedPage=k.ui.getPageById(b.getAttribute("relatedPage"));if(null==k.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));k.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(k.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState"));
+b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(k.relatedPage.root=a.decodeCell(d,!1),k=d.nextSibling,d.parentNode.removeChild(d),d=k;null!=d;){k=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=k}}return b};a.afterDecode=function(a,b,k){k.index=k.previousIndex;return k};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";EditorUi.prototype.altShiftActions[68]=
+"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,d,e,q,u){d=null!=d?d:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=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=c;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.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return m.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=m.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=m.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 u(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;h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),m=h.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*m;var p=h.getOutgoingEdges(h.model.getTerminal(d[0],!0));if(null!=p){for(var n=f==mxConstants.DIRECTION_SOUTH||
+f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<p.length;t++){var r=h.model.getTerminal(p[t],!1);if(f==q(r)){var x=h.view.getState(r);r!=a&&null!=x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,x)&&(d=10+Math.max(d,(Math.min(l.x+l.width,x.x+x.width)-Math.max(l.x,x.x))/m),g=10+Math.max(g,(Math.min(l.y+l.height,x.y+x.height)-Math.max(l.y,x.y))/m))}}n?g=0:d=0;for(t=0;t<p.length;t++)if(r=h.model.getTerminal(p[t],!1),f==q(r)&&(x=h.view.getState(r),r!=a&&null!=
+x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&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 c(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,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,m=-40):b==mxConstants.DIRECTION_WEST?(k=-40,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);h.moveCells(g,k,m);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 m=h.view.getBounds(f),l=q(a),p=h.view.translate,n=h.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x=
+null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=l==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==m?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(m.y+m.height)/n-p.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 n(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?r.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 r=this,h=r.editor.graph,m=h.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings");
+mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.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))}};r.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");r.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");r.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");r.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+D");var v=h.removeCells;h.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];m.isEdge(g)&&d(g)&&(e.push(g),g=m.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)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var A=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=A.call(this,a,c);if(k.length==
+a.length)for(e=0;e<a.length;e++)if(b(a[e])){var m=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==m.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var y=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,p=this.view.getState(f),n=null!=p?p.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding",
+"0")){for(var t=0;t<a.length;t++)if(b(a[t])||h.model.isEdge(a[t])&&null==h.model.getTerminal(a[t],!0)){f=h.model.getParent(a[t]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var q=h.getIncomingEdges(a[0]);if(0<q.length){var r=h.view.getState(h.model.getTerminal(q[0],!0));if(null!=r){var u=h.view.getState(l);null!=u&&(c=(u.getCenterX()-r.getCenterX())/h.view.scale,d=(u.getCenterY()-r.getCenterY())/h.view.scale)}}}}m=y.apply(this,arguments);if(null!=m&&null!=a&&m.length==a.length)for(t=0;t<
+m.length;t++)if(this.model.isEdge(m[t]))b(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[t],!0))&&this.model.setTerminal(m[t],l,!0);else if(b(a[t])&&(q=h.getIncomingEdges(a[t]),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==h.getIncomingEdges(m[t]).length){p=l;if(null==p||p==h.model.getParent(a[t]))p=h.model.getTerminal(q[0],!0);e=this.cloneCells([q[0]])[0];this.addEdge(e,h.getDefaultParent(),p,m[t])}}finally{this.model.endUpdate()}return m};
+if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=t.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 m=h.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"),
+83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var d=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(d=u(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&h.model.isEdge(d[0])?h.setSelectionCell(h.model.getTerminal(d[0],!1)):h.setSelectionCell(d[d.length-
+1]),null!=r.hoverIcons&&r.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_EAST),
+mxEvent.consume(a)):40==a.keyCode&&(n(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=h.connectVertex;h.connectVertex=function(a,d,e,g,k,m){var l=h.getIncomingEdges(a);return b(a)&&0<l.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==k?c(a):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)):
+G.call(this,a,d,e,g,k,m)};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 B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.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 J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.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 K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.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=
+(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.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 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 h=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;");h.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);h.insertEdge(m,!1);var l=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;");l.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
-n.geometry.relative=!0;n.edge=!0;b.insertEdge(n,!0);l.insertEdge(n,!1);a.insert(c);a.insert(g);a.insert(m);a.insert(n);a.insert(b);a.insert(d);a.insert(e);a.insert(h);a.insert(l);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 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);h.insertEdge(m,!1);a.insert(c);a.insert(g);a.insert(l);a.insert(m);a.insert(b);a.insert(d);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 b=new mxCell("Organization",
-new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(b,"treeRoot","1");b.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0;
-b.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(b);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a],
-a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
+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 d=new mxCell("Organization",
+new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(d,"treeRoot","1");d.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0;
+d.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(d);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a],
+a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
 a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
 a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0,
-0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new h(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&&
-a.formatWindow.window.fit()}function d(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new h(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
+0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new k(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&&
+a.formatWindow.window.fit()}function b(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new k(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
 g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("div");d.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";d.className="geTitle";mxUtils.write(d,mxResources.get("moreShapes"));b.appendChild(d);mxEvent.addListener(d,"click",function(){a.actions.get("shapes").funct()});var e=new Menubar(a,b);if(!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries)d.style.bottom=
 "0";else if(null!=a.actions.get("newLibrary")){d=document.createElement("div");d.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;";d.className="geTitle";var f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("newLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("newLibrary").funct);d=document.createElement("div");
 d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=c("newLibrary",mxResources.get("newLibrary")),d.style.left=
 "0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()}
-if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var b=document.createElement("style");b.type="text/css";b.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }";
-document.getElementsByTagName("head")[0].appendChild(b)}catch(n){}var h=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
+if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var d=document.createElement("style");d.type="text/css";d.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }";
+document.getElementsByTagName("head")[0].appendChild(d)}catch(m){}var k=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);
 this.window.setLocation=function(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)}};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
 mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
 mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
 "0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.prototype.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight=46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert=!0;Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=
-function(){return!1};var m=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");m.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut=
+function(){return!1};var l=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");l.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut=
 function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):q.apply(this,arguments)};var u=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){u.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)";
 a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("changeUser"))}};var c=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){c.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";
 a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==)";
@@ -3203,100 +3208,100 @@ mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResou
 null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("insert",a),this.addSubmenu("layout",a),a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b?
 !1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var g=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),
 this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=
-null);g.apply(this,arguments)};var k=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){k.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var b=this.editorUi,c=b.editor.graph;b.actions.get("insertText").label=mxResources.get("text");
-b.actions.get("insertText").label=mxResources.get("text");b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("insertRectangle").label=mxResources.get("rectangle");b.actions.get("insertEllipse").label=mxResources.get("ellipse");b.actions.get("insertRhombus").label=mxResources.get("rhombus");b.actions.get("insertImage").label=mxResources.get("image")+"...";b.actions.get("insertLink").label=mxResources.get("link")+"...";b.actions.get("createShape").label=mxResources.get("shape")+
-"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importFile",new Action("File...",function(){c.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&b.importFiles(a.files,null,null,b.maxImageSize)});a.click()}));b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu();
-b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){d(b)}));b.actions.put("toggleFormat",
-new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,
-"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime&&b.menus.addMenuItems(a,["chatWindowTitle"],
-c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,c)}}this.put("save",new Menu(mxUtils.bind(this,
-function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],c);b.menus.addMenuItems(a,["-","autosave"],
-c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips"],
-c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+
-mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
-l=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d=
-b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),m);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
+null);g.apply(this,arguments)};var n=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){n.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text");
+c.actions.get("insertText").label=mxResources.get("text");c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("insertRectangle").label=mxResources.get("rectangle");c.actions.get("insertEllipse").label=mxResources.get("ellipse");c.actions.get("insertRhombus").label=mxResources.get("rhombus");c.actions.get("insertImage").label=mxResources.get("image")+"...";c.actions.get("insertLink").label=mxResources.get("link")+"...";c.actions.get("createShape").label=mxResources.get("shape")+
+"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importFile",new Action("File...",function(){d.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&c.importFiles(a.files,null,null,c.maxImageSize)});a.click()}));c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu();
+c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat",
+new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?
+c.menus.addMenuItems(a,"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime?c.menus.addMenuItems(a,["chatWindowTitle"],
+b):c.menus.addMenuItems(a,["-","refresh"],b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a,
+b)}}this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"],
+b);c.menus.addMenuItems(a,["-","autosave"],b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a,
+["scrollbars","tooltips"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout"));
+mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),
+l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d=
+c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var h=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),n);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";
 f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition=
-"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage=
+"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?l.insertBefore(h,g.statusContainer):l.appendChild(h);null!=f?(h.style.backgroundImage=
 "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor=
 ""):(h.setAttribute("disabled","disabled"),mxUtils.setOpacity(h,null!=f?10:20),h.style.cursor="default")},e.addListener("stateChanged",a),a());return h}function c(a){var b=document.createElement("div");b.className="geMenuItem";b.style.display="inline-block";b.style.verticalAlign="top";b.style.marginRight="6px";b.style.padding="0 4px 0 4px";b.style.height="30px";b.style.position="relative";b.style.top="0px";for(var c=0;c<a.length;c++)null!=a[c]&&(a[c].style.margin="0px",a[c].style.boxShadow="none",
-b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function d(){for(var d=k.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}m=k.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,
+b.appendChild(a[c]));null!=g.statusContainer?l.insertBefore(b,g.statusContainer):l.appendChild(b);return b}function d(){for(var d=l.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}n=l.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct,
 null,mxResources.get("shapes"),g.actions.get("image"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"),
 d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==":
 null)]);f=a("insert",!0,d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null,40);c([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==":
 null)]);if(411<=e&&(f=g.actions.get("undo"),d=g.actions.get("redo"),f=b("",f.funct,null,mxResources.get("undo")+" ("+f.shortcut+")",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),d=b("",d.funct,
-null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),l=g.actions.get("resetView");
-c([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.translate.x,c=h.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-h.view.scale)&&b==h.view.translate.x&&c==h.view.translate.y&&g.actions.get(h.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",l,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
+null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),h=g.actions.get("resetView");
+c([b("",function(){k.popupMenuHandler.hideMenu();var a=k.view.scale,b=k.view.translate.x,c=k.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-k.view.scale)&&b==k.view.translate.x&&c==k.view.translate.y&&g.actions.get(k.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",h,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="),
 640<=e?b("",d.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="):
 null,640<=e?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="):
 null])}d=g.menus.get("language");null!=d&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=e?(f=p.addMenu("",d.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)",
-f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}l.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
-f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var m=null,p=new Menubar(g,k);g.statusContainer=
+f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),l.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}h.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";
+f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,k=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var n=null,p=new Menubar(g,l);g.statusContainer=
 g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var q=g.descriptorChanged;g.descriptorChanged=function(){q.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b=
-a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer=
+a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);l.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else l.removeAttribute("title")};g.setStatusText(g.editor.getStatus());l.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";l.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer=
 document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,r=document.createElement("div");r.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!=
 u){this.tabContainer.style.right="70px";var C=p.addMenu("100%",u.funct);C.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");C.style.whiteSpace="nowrap";C.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";C.style.backgroundPosition="right 6px center";C.style.backgroundRepeat="no-repeat";C.style.backgroundColor="#ffffff";C.style.paddingRight="10px";C.style.display="block";C.style.position="absolute";C.style.textDecoration="none";C.style.textDecoration="none";C.style.right=
 "0px";C.style.bottom="0px";C.style.overflow="hidden";C.style.visibility="hidden";C.style.textAlign="center";C.style.color="#000";C.style.fontSize="12px";C.style.color="#707070";C.style.width="59px";C.style.borderTop="1px solid lightgray";C.style.borderLeft="1px solid lightgray";C.style.height=parseInt(g.tabContainer.style.height)-1+"px";C.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";r.appendChild(C);u=mxUtils.bind(this,function(){C.innerHTML=Math.round(100*g.editor.graph.view.scale)+
-"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(k);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer();
+"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(l);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer();
 d();mxEvent.addListener(window,"resize",function(){d();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}};
-(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed:  / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=File was changed. Overwrite changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters:  / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
-Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,d,e){this.init(a,d,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1;
+(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed:  / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters:  / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement;
+Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,e){this.init(a,b,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1;
 GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;
-GraphViewer.prototype.init=function(a,d,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled=
-0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=d&&(this.xmlDocument=d.ownerDocument,this.xmlNode=d,this.xml=mxUtils.getXml(d),
-null!=a)){var b=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var b=this;this.graph.getImageFromBundles=function(a){return b.getImageUrl(a)};
-mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==d.nodeName){var e=d.getElementsByTagName("diagram");if(0<e.length){var h=this.graph.getGlobalVariable,b=this;this.graph.getGlobalVariable=function(a){var c=e[b.currentPage];return"page"==a?c.getAttribute("name")||"Page-"+(b.currentPage+1):"pagenumber"==a?b.currentPage+1:h.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length);
+GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled=
+0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=b&&(this.xmlDocument=b.ownerDocument,this.xmlNode=b,this.xml=mxUtils.getXml(b),
+null!=a)){var d=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var d=this;this.graph.getImageFromBundles=function(a){return d.getImageUrl(a)};
+mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(a){var b=e[d.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==a?d.currentPage+1:k.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length);
 this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(this.diagrams[this.currentPage]))).documentElement)};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};var f=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=c&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),c=this.xmlNode)});this.addListener("xmlNodeChanged",
-f);f();urlParams.page=b.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};b=this;this.graph.customLinkClicked=function(a){var c=!0;if("data:page/id,"==a.substring(0,13)){var d=a.indexOf(",");
-b.selectPageById(a.substring(d+1))||(c=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return c};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 h=this.getObservableParent(a),
-m=new e(mxUtils.bind(this,function(d){0<a.offsetWidth&&(m.disconnect(),b())}));m.observe(h,{attributes:!0})}else b()}};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};
+f);f();urlParams.page=d.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};d=this;this.graph.customLinkClicked=function(a){var b=!0;if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");
+d.selectPageById(a.substring(c+1))||(b=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return b};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),
+l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),d())}));l.observe(k,{attributes:!0})}else d()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a};
 GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};GraphViewer.prototype.setXmlNode=function(a){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,d=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var b=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}}),h=null,m=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==h||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},h=c,window.setTimeout(function(){m=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",b),this.graph.addListener("size",
-b)):new ResizeSensor(this.graph.container,b));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,d.width+2*this.graph.border),this.updateContainerHeight(a,d.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var p=h=null,b=mxUtils.bind(this,function(){window.clearTimeout(p);m||(p=window.setTimeout(mxUtils.bind(this,
-this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",b):new ResizeSensor(this.graph.container,b))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",b);var q=mxUtils.bind(this,function(){var b=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||d.width+2*this.graph.border>a.offsetWidth||d.height+2*this.graph.border>this.graphConfig["max-height"])){var c=
-null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(d.height+2*this.graph.border));this.fitGraph(c)}else this.graph.view.setTranslate(Math.floor((this.graph.border-d.x)/this.graph.view.scale),Math.floor((this.graph.border-d.y)/this.graph.view.scale)),h=a.offsetWidth;a.style.minWidth=b});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){d=this.graph.getGraphBounds();h=null;q()}};
-GraphViewer.prototype.updateContainerWidth=function(a,d){a.style.width=d+"px"};GraphViewer.prototype.updateContainerHeight=function(a,d){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=d+"px"};
-GraphViewer.prototype.showLayers=function(a,d){var e=this.graphConfig.layers;if(null!=e||null!=d)if(e=null!=e?e.split(" "):null,null!=d||0<e.length){var b=null!=d?d.getModel():null,h=a.getModel();h.beginUpdate();try{for(var m=h.getChildCount(h.root),p=0;p<m;p++)h.setVisible(h.getChildAt(h.root,p),null!=d?b.isVisible(b.getChildAt(b.root,p)):!1);if(null==b)for(p=0;p<e.length;p++)h.setVisible(h.getChildAt(h.root,parseInt(e[p])),!0)}finally{h.endUpdate()}}};
+GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var d=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",d),this.graph.addListener("size",
+d)):new ResizeSensor(this.graph.container,d));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 p=k=null,d=mxUtils.bind(this,function(){window.clearTimeout(p);l||(p=window.setTimeout(mxUtils.bind(this,
+this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",d);var q=mxUtils.bind(this,function(){var d=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 c=
+null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(b.height+2*this.graph.border));this.fitGraph(c)}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=d});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 d=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var l=k.getChildCount(k.root),p=0;p<l;p++)k.setVisible(k.getChildAt(k.root,p),null!=b?d.isVisible(d.getChildAt(d.root,p)):!1);if(null==d)for(p=0;p<e.length;p++)k.setVisible(k.getChildAt(k.root,parseInt(e[p])),!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 d=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?d.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(d.style.marginTop=this.toolbarHeight+"px");var e=d.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 b=null,h=null,m=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),fadeThead2=null);b=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
-0);b=null;h=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";h=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),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)||(p(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
+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 d=null,k=null,l=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,
+0);d=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),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)||(p(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove":
 "mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){p(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){p(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||p(30)}));var q=this.graph,u=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)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?m():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,k=null,r=0;r<c.length;r++){var l=c[r];if("pages"==l){k=d.ownerDocument.createElement("div");
-k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(k,70);var n=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");n.style.borderRightStyle="none";n.style.paddingLeft="0px";n.style.paddingRight="0px";e.appendChild(k);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
-1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";l=mxUtils.bind(this,function(){k.innerHTML="";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";n.style.display=k.style.display;w.style.display=k.style.display});this.addListener("graphChanged",l);l()}else if("zoom"==l)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"==l){if(this.layersEnabled){var v=this.graph.getModel(),B=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=B.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");v.addListener(mxEvent.CHANGE,function(){B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==l?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(l=this.graphConfig["toolbar-buttons"][l],
-null!=l&&a(null==l.enabled||l.enabled?l.handler:function(){},l.image,l.title,l.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(c=d.ownerDocument.createElement("div"),c.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;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c,
-70),e.appendChild(c));this.minToolbarWidth=34*f;var y=d.style.border,c=mxUtils.bind(this,function(){var a=d.getBoundingClientRect(),b=mxUtils.getScrollOrigin(document.body),b="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-b.x,top:-b.y},a={left:a.left-b.left,top:a.top-b.top,bottom:a.bottom-b.top,right:a.right-b.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,d.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"==y&&(d.style.border="1px solid #d0d0d0");document.body.appendChild(e);var c=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g),
-g=null),d.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==d||a==e||a==g)return;a=a.parentNode}c()});mxEvent.addListener(document,"mouseleave",function(a){c()})});mxEvent.addListener(d,"mouseenter",c)};
-GraphViewer.prototype.addClickHandler=function(a,d){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,b){if(null==b){var h=mxEvent.getSource(e);"a"==h.nodeName.toLowerCase()&&(b=h.getAttribute("href"))}null!=d?null==b||a.isExternalProtocol(b)||a.isBlankLink(b)||window.setTimeout(function(){d.destroy()},0):null!=b&&null==d&&a.isCustomLink(b)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(b)&&mxEvent.consume(e)}),
-mxUtils.bind(this,function(a){null!=d||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))};
-GraphViewer.prototype.showLightbox=function(a,d,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!=d?d: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&&
+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)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?l():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,n=null,r=0;r<c.length;r++){var h=c[r];if("pages"==h){n=b.ownerDocument.createElement("div");
+n.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(n,70);var m=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");m.style.borderRightStyle="none";m.style.paddingLeft="0px";m.style.paddingRight="0px";e.appendChild(n);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
+1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";h=mxUtils.bind(this,function(){n.innerHTML="";mxUtils.write(n,this.currentPage+1+" / "+this.diagrams.length);n.style.display=1<this.diagrams.length?"inline-block":"none";m.style.display=n.style.display;w.style.display=n.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 v=this.graph.getModel(),A=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=A.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");v.addListener(mxEvent.CHANGE,function(){A.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});A.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&&(c=b.ownerDocument.createElement("div"),c.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;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c,
+70),e.appendChild(c));this.minToolbarWidth=34*f;var y=b.style.border,c=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"==y&&(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=y)});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",c)};
+GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d){var k=mxEvent.getSource(e);"a"==k.nodeName.toLowerCase()&&(d=k.getAttribute("href"))}null!=b?null==d||a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(d)&&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&&
 (e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(a){"ready"==a.data&&a.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);a="www.draw.io";"1"==urlParams.dev&&(e.dev="1",e.drawdev=
 "1",a="test.draw.io");this.lightboxWindow=window.open("https://"+a+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()};
-GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),d=document.createElement("div");mxClient.IS_QUIRKS?(d.style.position="absolute",d.style.left=a.x+"px",d.style.top=a.y+"px",d.style.width=document.body.offsetWidth+"px",d.style.height=document.body.offsetHeight+"px"):d.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";d.style.zIndex=this.lightboxZIndex;d.style.backgroundColor="#000000";mxUtils.setOpacity(d,70);document.body.appendChild(d);
-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(){b.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,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var b=new EditorUi(new Editor(!0),document.createElement("div"),!0);b.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";b.refresh=
-function(){};var h=mxUtils.bind(this,function(a){27==a.keyCode&&b.destroy()}),m=b.destroy;b.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",h);document.body.removeChild(d);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var p=b.editor.graph,q=p.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement,
-"keydown",h)):(d.style.display="none",e.style.display="none");var u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=b.createTemporaryGraph;b.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.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(p,b);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);b.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");b.chromelessToolbar.style.bottom=
-"60px";b.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(b.chromelessToolbar);b.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",b.chromelessToolbar.style.display="block",b.chromelessToolbar.style.position="absolute",
-b.chromelessToolbar.style.bottom="",b.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");b.lightboxFit();b.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(d,"click",function(){b.destroy()})}),0);return b};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 d=document.getElementsByClassName(a);a=[];for(var e=0;e<d.length;e++)a.push(d[e]);return a}for(var b=document.getElementsByTagName("*"),d=[],e=0;e<b.length;e++){var h=b[e].className;null!=h&&0<h.length&&(h=h.split(" "),0<=mxUtils.indexOf(h,a)&&d.push(b[e]))}return d};
-GraphViewer.createViewerForElement=function(a,d){var e=a.getAttribute("data-mxgraph");if(null!=e){var b=JSON.parse(e),h=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,b);null!=d&&d(e)};null!=b.url?GraphViewer.getUrl(b.url,function(a){h(a)}):h(b.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(d){}};
-GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,d,e){if(null!=GraphViewer.cachedUrls[a])d(GraphViewer.cachedUrls[a]);else{var b=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;b.open("GET",a);b.onload=function(){d(null!=b.getText?b.getText():b.responseText)};b.onerror=e;b.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
-(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},d=function(e,b){function h(){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 p(b,c){if(!b.resizedAttached)b.resizedAttached=
-new h,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 k=!1,p=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(p))};a(p);var q,t,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)k=!0,q=u,t=H;g()},A=function(a,b,c){a.attachEvent?
-a.attachEvent("on"+b,c):a.addEventListener(b,c)};A(d,"scroll",G);A(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&b()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,b=e.length;a<b;a++)d.detach(e[a]);else d.detach(e)}};
-d.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=d})();
+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(){d.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,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";d.refresh=
+function(){};var k=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),l=d.destroy;d.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 p=d.editor.graph,q=p.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 u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.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(p,d);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);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom=
+"60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(d.chromelessToolbar);d.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",d.chromelessToolbar.style.display="block",d.chromelessToolbar.style.position="absolute",
+d.chromelessToolbar.style.bottom="",d.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");d.lightboxFit();d.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(b,"click",function(){d.destroy()})}),0);return d};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 d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var k=d[e].className;null!=k&&0<k.length&&(k=k.split(" "),0<=mxUtils.indexOf(k,a)&&b.push(d[e]))}return b};
+GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),k=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){k(a)}):k(d.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 d=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=e;d.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,d){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 p(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"==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,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)n=!0,q=u,t=H;g()},B=function(a,b,c){a.attachEvent?
+a.attachEvent("on"+b,c):a.addEventListener(b,c)};B(d,"scroll",G);B(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,d=e.length;a<d;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/resources/dia.txt b/src/main/webapp/resources/dia.txt
index c872a2a76..14f981491 100644
--- a/src/main/webapp/resources/dia.txt
+++ b/src/main/webapp/resources/dia.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt
index 7994042b2..01a8ea05d 100644
--- a/src/main/webapp/resources/dia_am.txt
+++ b/src/main/webapp/resources/dia_am.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt
index faade9cb7..aeb45b3fd 100644
--- a/src/main/webapp/resources/dia_ar.txt
+++ b/src/main/webapp/resources/dia_ar.txt
@@ -90,6 +90,7 @@ chatLeft=‫غادر {1}‬
 chatWindowTitle=‫دردشة‬
 chooseAnOption=‫اختر خيارا‬
 chromeApp=‫تطبيق Chrome‬
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=‫تصدير ك‬
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=‫إضافات‬
 facebook=Facebook
 failedToSaveTryReconnect=‫لم يتم الحفظ، محاولة إعادة الاتصال.‬
@@ -252,7 +254,7 @@ feedback=‫تعليق‬
 feedbackSent=‫تم إرسال التعليق بنجاح.‬
 floorplans=Floorplans
 file=‫ملف‬
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=‫اسم الملف‬
 fileExists=‫الملف موجود مسبقا‬
diff --git a/src/main/webapp/resources/dia_bg.txt b/src/main/webapp/resources/dia_bg.txt
index add7639b5..4e2efbe72 100644
--- a/src/main/webapp/resources/dia_bg.txt
+++ b/src/main/webapp/resources/dia_bg.txt
@@ -90,6 +90,7 @@ chatLeft={1} напусна
 chatWindowTitle=Чат
 chooseAnOption=Изберете опция
 chromeApp=Chrome приложение
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Компресиран
 commitMessage=Съобщение при подаване
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Експортиране
 exportAs=Експортиране като
 exportOptionsDisabled=Опцията за експортиране е деактивирана
 exportOptionsDisabledDetails=Собственикът е деактивирал опциите за изтегляне, принтиране и копиране за хората, които коментират и разглеждат този файл.
+externalChanges=External Changes
 extras=Екстри
 facebook=Facebook
 failedToSaveTryReconnect=Неуспешно запазване, опит за повторно свързване
diff --git a/src/main/webapp/resources/dia_bn.txt b/src/main/webapp/resources/dia_bn.txt
index ce97cdce3..dc8a00bfd 100644
--- a/src/main/webapp/resources/dia_bn.txt
+++ b/src/main/webapp/resources/dia_bn.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_bs.txt b/src/main/webapp/resources/dia_bs.txt
index 085f73e46..a7048bc1d 100644
--- a/src/main/webapp/resources/dia_bs.txt
+++ b/src/main/webapp/resources/dia_bs.txt
@@ -90,6 +90,7 @@ chatLeft={1} je otišao
 chatWindowTitle=Razgovor
 chooseAnOption=Izaberite opciju
 chromeApp=Chrome Aplikacija
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Kompresovano
 commitMessage=Posveti poruku
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Izvozi
 exportAs=Izvezi kao
 exportOptionsDisabled=Opcije izvoza onemogućene
 exportOptionsDisabledDetails=Vlasnik je za ovaj fajl komentatorima i posjetiocima onemogućio preuzimanje, printanje i kopiranje.
+externalChanges=External Changes
 extras=Dodaci
 facebook=Facebook
 failedToSaveTryReconnect=Spašavanje nije uspjelo, pokušaj ponovnog povezivanja
diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt
index 8b4dadf49..9997d872d 100644
--- a/src/main/webapp/resources/dia_ca.txt
+++ b/src/main/webapp/resources/dia_ca.txt
@@ -90,6 +90,7 @@ chatLeft={1} ha sortit
 chatWindowTitle=Xat
 chooseAnOption=Escolliu una opció
 chromeApp=Aplicació Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Comprimit
 commitMessage=Missatge de Commit
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportant
 exportAs=Exporta com a 
 exportOptionsDisabled=Opcions d'exportació inactives
 exportOptionsDisabledDetails=El propietari ha desactivat les opcions per a descarregar, imprimir o copiar aquest fitxer per las que només tenen permís per visualitzar i comentar.
+externalChanges=External Changes
 extras=Extres
 facebook=Facebook
 failedToSaveTryReconnect=Error en desar, intentant reconnectar
diff --git a/src/main/webapp/resources/dia_cs.txt b/src/main/webapp/resources/dia_cs.txt
index 6ef168c7a..12b897172 100644
--- a/src/main/webapp/resources/dia_cs.txt
+++ b/src/main/webapp/resources/dia_cs.txt
@@ -90,6 +90,7 @@ chatLeft={1} se odhlásil
 chatWindowTitle=Chat
 chooseAnOption=Vyberte možnost
 chromeApp=Aplikace Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Komprimováno
 commitMessage=Zpráva ke commitu
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportuji
 exportAs=Exportovat jako
 exportOptionsDisabled=Možnost exportu je vypnutá
 exportOptionsDisabledDetails=Vlastník pro komentující a diváky vypnul možnost stažení, tisku nebo kopírování.
+externalChanges=External Changes
 extras=Extra
 facebook=Facebook
 failedToSaveTryReconnect=Uložení se nezdařilo, zkouším se znovu připojit
diff --git a/src/main/webapp/resources/dia_da.txt b/src/main/webapp/resources/dia_da.txt
index 8e192f927..fb4415544 100644
--- a/src/main/webapp/resources/dia_da.txt
+++ b/src/main/webapp/resources/dia_da.txt
@@ -90,6 +90,7 @@ chatLeft={1} har forladt chatten
 chatWindowTitle=Chat
 chooseAnOption=Vælg en mulighed
 chromeApp=Chrome app
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Komprimeret
 commitMessage=Commit Besked
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Eksporterer
 exportAs=Eksporterer som
 exportOptionsDisabled=Eksportmuligheder deaktiveret
 exportOptionsDisabledDetails=Ejeren har deaktiveret muligheder for at downloade, printe eller kopiere for kommentører og seere på denne fil.
+externalChanges=External Changes
 extras=Ekstra
 facebook=Facebook
 failedToSaveTryReconnect=Kunne ikke gemme, forsøger at genoprette forbindelsen
diff --git a/src/main/webapp/resources/dia_de.txt b/src/main/webapp/resources/dia_de.txt
index 2c875f782..06d807d1f 100644
--- a/src/main/webapp/resources/dia_de.txt
+++ b/src/main/webapp/resources/dia_de.txt
@@ -90,6 +90,7 @@ chatLeft={1} hat den Chat verlassen
 chatWindowTitle=Chat
 chooseAnOption=Wählen Sie eine Option
 chromeApp=Chrome app
+collaborativeEditingNotice=Wichtige Mitteilung für gemeinesames Bearbeiten
 compressed=Komprimiert
 commitMessage=Commit-Nachricht
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Wird exportiert
 exportAs=Exportieren als
 exportOptionsDisabled=Exportoptionen deaktiviert
 exportOptionsDisabledDetails=Der Nutzer hat die Optionen zum Herunterladen, Drucken und Kopieren dieser Datei für Nutzer mit Kommentier- und Lesezugriff deaktiviert.
+externalChanges=Externe Änderungen
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Speichern fehlgeschlagen. Verbindungswiederherstellung
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback erfolgreich versendet.
 floorplans=Grundriss
 file=Datei
-fileChangedOverwrite=Datei wurde geändert. Änderungen überschreiben?
+fileChangedOverwrite=Die Datei wurde geändert. Möchten Sie die Datei speichern und die Änderungen überschreiben?
 overwrite=Überschreiben
 filename=Dateiname
 fileExists=Datei existiert bereits
diff --git a/src/main/webapp/resources/dia_el.txt b/src/main/webapp/resources/dia_el.txt
index e9069d6aa..73ac77963 100644
--- a/src/main/webapp/resources/dia_el.txt
+++ b/src/main/webapp/resources/dia_el.txt
@@ -90,6 +90,7 @@ chatLeft={1} έχει εξέρθει
 chatWindowTitle=Chat
 chooseAnOption=Διαλέξτε μια επιλογή
 chromeApp=Εφαρμογή Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Συμπιεσμένο
 commitMessage=Υποβολή μυνήματος
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Γίνετε εξαγωγή
 exportAs=Εξαγωγή ως
 exportOptionsDisabled=Οι επιλογές εξαγωγής έχουν απενεργοποιηθεί
 exportOptionsDisabledDetails=Ο ιδιοκτήτης έχει απενεργοποιήσει τις επιλογές λήψης, εκτύπωσης ή αντιγραφής του αρχείου για τους σχολιαστές και τους θεατές.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Αποτυχία αποθήκευσης, γίνεται προσπάθεια επανασύνδεσης
diff --git a/src/main/webapp/resources/dia_eo.txt b/src/main/webapp/resources/dia_eo.txt
index 138b700d2..3963dedbf 100644
--- a/src/main/webapp/resources/dia_eo.txt
+++ b/src/main/webapp/resources/dia_eo.txt
@@ -1,14 +1,14 @@
 # *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*
 # https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE
 aboutDrawio=Pri draw.io
-accessDenied=Access Denied
-action=Action
-actualSize=Actual Size
+accessDenied=Aliro rifuzita
+action=Ago
+actualSize=Vera grandeco
 add=Aldoni
-addedFile=Added {1}
+addedFile={1} aldonita
 addImages=Aldoni bildojn
 addImageUrl=Add Image URL
-addLayer=Add Layer
+addLayer=Aldoni tavolon
 addProperty=Aldoni econ
 address=Adreso
 addToExistingDrawing=Add to Existing Drawing
@@ -24,7 +24,7 @@ allSpaces=All Spaces
 allTags=All Tags
 anchor=Anchor
 android=Android
-angle=Angle
+angle=Angulo
 arc=Arc
 areYouSure=Ĉu vi certas?
 ensureDataSaved=Please ensure your data is saved before closing.
@@ -81,15 +81,16 @@ center=Center
 cannotLoad=Load attempts failed. Please try again later.
 cannotLogin=Log in attempts failed. Please try again later.
 cannotOpenFile=Cannot open file
-change=Change
+change=Ŝanĝi
 changeOrientation=Change Orientation
-changeUser=Change user
+changeUser=Ŝanĝi uzanton
 changesNotSaved=Changes have not been saved
 chatJoined={1} has joined
 chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=Dosiero
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Dosiernomo
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt
index 864be42b2..dd9aee883 100644
--- a/src/main/webapp/resources/dia_es.txt
+++ b/src/main/webapp/resources/dia_es.txt
@@ -90,6 +90,7 @@ chatLeft={1} se ha ido
 chatWindowTitle=Chat
 chooseAnOption=Elegir una opción
 chromeApp=Aplicación Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Comprimido
 commitMessage=Confirmar mensaje
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportando
 exportAs=Exportar como
 exportOptionsDisabled=Las opciones para exportar están deshabilitadas
 exportOptionsDisabledDetails=El propietario ha deshabilitado las opciones de descargar, imprimir o copiar para los comentadores u observadores de este archivo.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Falló al guardar, intentando reconectar
diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt
index fda8512b0..9adb4b75f 100644
--- a/src/main/webapp/resources/dia_et.txt
+++ b/src/main/webapp/resources/dia_et.txt
@@ -90,6 +90,7 @@ chatLeft={1} lahkus
 chatWindowTitle=Chat
 chooseAnOption=Tee valik
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Pakitud
 commitMessage=Kinnita sõnum
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Eksport
 exportAs=Ekspordi nimega
 exportOptionsDisabled=Ekspordi valikud keelatud
 exportOptionsDisabledDetails=Faili omanik on keelanud võimaluse kommenteerijatel ja vaatajatel sisu alla laadida, printida või kopeerida.
+externalChanges=External Changes
 extras=Lisad
 facebook=Facebook
 failedToSaveTryReconnect=Salvestamine ebaõnnestunud, proov ühendust luua
diff --git a/src/main/webapp/resources/dia_fa.txt b/src/main/webapp/resources/dia_fa.txt
index 648be8933..41895364f 100644
--- a/src/main/webapp/resources/dia_fa.txt
+++ b/src/main/webapp/resources/dia_fa.txt
@@ -90,6 +90,7 @@ chatLeft=‫{1} خارج شده است.‬
 chatWindowTitle=‫چت‬
 chooseAnOption=‫یک گزینه را انتخاب نمایید‬
 chromeApp=‫اپلیکیشن کروم‬
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=‫فشرده‬
 commitMessage=‫تایید پیام‬
 csv=CSV
@@ -244,6 +245,7 @@ exporting=‫در حال فرستادن‬
 exportAs=‫فرستادن به عنوان‬
 exportOptionsDisabled=‫گزینه های فرستادن غیرفعال گشته اند‬
 exportOptionsDisabledDetails=‫دارنده امکان دانلود، چاپ و کپی برای نظردهندگان و بینندگان این فایل را غیرفعال کرده است.‬
+externalChanges=External Changes
 extras=‫موارد اضافی‬
 facebook=‫فیسبوک‬
 failedToSaveTryReconnect=‫عدم ذخیره سازی، سعی در اتصال مجدد‬
diff --git a/src/main/webapp/resources/dia_fi.txt b/src/main/webapp/resources/dia_fi.txt
index 387dff7c6..12eee5b40 100644
--- a/src/main/webapp/resources/dia_fi.txt
+++ b/src/main/webapp/resources/dia_fi.txt
@@ -90,6 +90,7 @@ chatLeft={1} lähti pois keskustelusta
 chatWindowTitle=Chat
 chooseAnOption=Valitse vaihtoehto
 chromeApp=Chrome-sovellus
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Pakattu
 commitMessage=Lähetä viesti
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Viedään
 exportAs=Vie nimellä
 exportOptionsDisabled=Vientivalinnat pois käytöstä
 exportOptionsDisabledDetails=Omistaja on poistanut valinnat lataamiseen, tulostamiseen tai kopioimiseen kommentoijille ja katsojille tässä tiedostossa.
+externalChanges=External Changes
 extras=Extrat
 facebook=Facebook
 failedToSaveTryReconnect=Tallentaminen epäonnistui, yritetään yhdistää uudelleen
diff --git a/src/main/webapp/resources/dia_fil.txt b/src/main/webapp/resources/dia_fil.txt
index de81d17cf..29192eb78 100644
--- a/src/main/webapp/resources/dia_fil.txt
+++ b/src/main/webapp/resources/dia_fil.txt
@@ -90,6 +90,7 @@ chatLeft={1} ay umalis
 chatWindowTitle=Pag-uusap
 chooseAnOption=Magtakda ng Pagpipilian
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Siniksik
 commitMessage=Maglagak ng mensahe
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Iniluluwas
 exportAs=Iluwas bilang
 exportOptionsDisabled=Ang mga pagpipilian sa pagluwas ay di pinagana
 exportOptionsDisabledDetails=Di pinagana ng may-ari ang mga pagpipilian para mag download, iprinta, o kumopya para sa mga nagkukumento o tumitingin ng file na ito.
+externalChanges=External Changes
 extras=Mga dagdag
 facebook=Facebook
 failedToSaveTryReconnect=Bigong mag-save, sinusubukang kumonektang muli.
diff --git a/src/main/webapp/resources/dia_fr.txt b/src/main/webapp/resources/dia_fr.txt
index 405113093..a550a216b 100644
--- a/src/main/webapp/resources/dia_fr.txt
+++ b/src/main/webapp/resources/dia_fr.txt
@@ -90,6 +90,7 @@ chatLeft={1} a quitté le chat
 chatWindowTitle=Chat
 chooseAnOption=Choisir une option
 chromeApp=Application Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressé
 commitMessage=Message commit
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportation
 exportAs=Exporter en tant que
 exportOptionsDisabled=Possibilités d'export désactivées
 exportOptionsDisabledDetails=Le propriétaire a désactivé les possibilités de téléchargement, d'impression ou de copie pour les commentateurs et observateurs sur ce fichier.
+externalChanges=External Changes
 extras=Suppléments
 facebook=Facebook
 failedToSaveTryReconnect=La sauvegarde a échoué, tentative de reconnexion
diff --git a/src/main/webapp/resources/dia_gu.txt b/src/main/webapp/resources/dia_gu.txt
index c7d14c908..03d069787 100644
--- a/src/main/webapp/resources/dia_gu.txt
+++ b/src/main/webapp/resources/dia_gu.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_he.txt b/src/main/webapp/resources/dia_he.txt
index 5d7213491..b39e108e0 100644
--- a/src/main/webapp/resources/dia_he.txt
+++ b/src/main/webapp/resources/dia_he.txt
@@ -90,6 +90,7 @@ chatLeft=‫{1} עזב‬
 chatWindowTitle=‫צ'אט‬
 chooseAnOption=‫בחר אפשרות‬
 chromeApp=‫אפליקציית כרום‬
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=‫דחוס‬
 commitMessage=‫הודעת commit‬
 csv=CSV
@@ -244,6 +245,7 @@ exporting=‫ייצוא‬
 exportAs=‫ייצא בתור‬
 exportOptionsDisabled=‫האפשרות לייצא הושבתה‬
 exportOptionsDisabledDetails=‫האחראי הגביל את האפשרות להוריד, להדפיס או להעתיק עבור מגיבים וצופים בקובץ זה.‬
+externalChanges=External Changes
 extras=‫תוספות‬
 facebook=‫פייסבוק‬
 failedToSaveTryReconnect=‫השמירה נכשלה, מנסה להתחבר מחדש‬
diff --git a/src/main/webapp/resources/dia_hi.txt b/src/main/webapp/resources/dia_hi.txt
index dca1562ec..4a509c738 100644
--- a/src/main/webapp/resources/dia_hi.txt
+++ b/src/main/webapp/resources/dia_hi.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_hr.txt b/src/main/webapp/resources/dia_hr.txt
index 925ae5569..b05affb1d 100644
--- a/src/main/webapp/resources/dia_hr.txt
+++ b/src/main/webapp/resources/dia_hr.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_hu.txt b/src/main/webapp/resources/dia_hu.txt
index dface1248..7d8930d58 100644
--- a/src/main/webapp/resources/dia_hu.txt
+++ b/src/main/webapp/resources/dia_hu.txt
@@ -90,6 +90,7 @@ chatLeft={1} távozott
 chatWindowTitle=Cseveg
 chooseAnOption=Válasszon opciót
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Tömörített
 commitMessage=Üzenetet küld
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportálás folyamatban
 exportAs=Exportálás másként
 exportOptionsDisabled=Exportálási opciók letiltva
 exportOptionsDisabledDetails=A tulajdonos letiltotta a letöltési, nyomtatási vagy másolási opciókat a kommentelőknek és nézőknek ezen a fájlon.
+externalChanges=External Changes
 extras=Extrák
 facebook=Facebook
 failedToSaveTryReconnect=Sikertelen mentés, próbáljon újrakapcsolódni
diff --git a/src/main/webapp/resources/dia_i18n.txt b/src/main/webapp/resources/dia_i18n.txt
index ed4ee0ee3..f8ecd516b 100644
--- a/src/main/webapp/resources/dia_i18n.txt
+++ b/src/main/webapp/resources/dia_i18n.txt
@@ -90,6 +90,7 @@ chatLeft=chatLeft
 chatWindowTitle=chatWindowTitle
 chooseAnOption=chooseAnOption
 chromeApp=chromeApp
+collaborativeEditingNotice=collaborativeEditingNotice
 compressed=compressed
 commitMessage=commitMessage
 csv=csv
@@ -244,6 +245,7 @@ exporting=exporting
 exportAs=exportAs
 exportOptionsDisabled=exportOptionsDisabled
 exportOptionsDisabledDetails=exportOptionsDisabledDetails
+externalChanges=externalChanges
 extras=extras
 facebook=facebook
 failedToSaveTryReconnect=failedToSaveTryReconnect
diff --git a/src/main/webapp/resources/dia_id.txt b/src/main/webapp/resources/dia_id.txt
index ae2f70412..800b18c9b 100644
--- a/src/main/webapp/resources/dia_id.txt
+++ b/src/main/webapp/resources/dia_id.txt
@@ -90,6 +90,7 @@ chatLeft={1} keluar
 chatWindowTitle=Obrolan
 chooseAnOption=Pilih salah satu opsi
 chromeApp=Aplikasi Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Mampat
 commitMessage=Kirim Pesan
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Mengekspor
 exportAs=Ekspor sebagai
 exportOptionsDisabled=Pilihan ekspor nonaktif
 exportOptionsDisabledDetails=Pemilik telah menonaktifkan opsi unduh, cetak, atau salin untuk pengomentar dan pembaca berkas ini.
+externalChanges=External Changes
 extras=Ekstra
 facebook=Facebook
 failedToSaveTryReconnect=Gagal menyimpan, mencoba menghubungkan kembali
diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt
index 09593fb31..591ff71d5 100644
--- a/src/main/webapp/resources/dia_it.txt
+++ b/src/main/webapp/resources/dia_it.txt
@@ -90,6 +90,7 @@ chatLeft={1} è uscito
 chatWindowTitle=Chat
 chooseAnOption=Scegli un'opzione
 chromeApp=App Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compresso
 commitMessage=Invia il messaggio
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Esportando
 exportAs=Esporta come
 exportOptionsDisabled=Opzioni di esporto disabilitate
 exportOptionsDisabledDetails=Il proprietario ha disabilitato le opzioni di download, stampa e copia per i commentatori ed i lettori del file.
+externalChanges=External Changes
 extras=Altro
 facebook=Facebook
 failedToSaveTryReconnect=Impossibile salvare, riconnessione in corso
diff --git a/src/main/webapp/resources/dia_ja.txt b/src/main/webapp/resources/dia_ja.txt
index 96791c338..bde9c4870 100644
--- a/src/main/webapp/resources/dia_ja.txt
+++ b/src/main/webapp/resources/dia_ja.txt
@@ -90,6 +90,7 @@ chatLeft={1} がチャットを去りました。
 chatWindowTitle=チャット
 chooseAnOption=オプションを選んでください
 chromeApp=Chrome アプリ
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=圧縮
 commitMessage=メッセージを省略する
 csv=CSV
@@ -244,6 +245,7 @@ exporting=エクスポート中
 exportAs=形式を指定してエクスポート
 exportOptionsDisabled=エクスポートは使えません
 exportOptionsDisabledDetails=所有者は、視聴者や編集者がダウンロード、印刷、コピーをすることを認めていません。
+externalChanges=External Changes
 extras=æ‹¡å¼µ
 facebook=フェイスブック
 failedToSaveTryReconnect=保存に失敗しました。再接続中です。
diff --git a/src/main/webapp/resources/dia_kn.txt b/src/main/webapp/resources/dia_kn.txt
index 42bb37dad..089631e49 100644
--- a/src/main/webapp/resources/dia_kn.txt
+++ b/src/main/webapp/resources/dia_kn.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_ko.txt b/src/main/webapp/resources/dia_ko.txt
index 0c1767436..62b4f0108 100644
--- a/src/main/webapp/resources/dia_ko.txt
+++ b/src/main/webapp/resources/dia_ko.txt
@@ -90,6 +90,7 @@ chatLeft={1}님이 대화에서 나갔습니다
 chatWindowTitle=대화창
 chooseAnOption=옵션 선택
 chromeApp=크롬 앱
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=ì••ì¶•
 commitMessage=메세지 전송
 csv=CSV
@@ -244,6 +245,7 @@ exporting=내보내는 중
 exportAs=다른 파일 형식으로 내보내기
 exportOptionsDisabled=내보내기 옵션 사용불가
 exportOptionsDisabledDetails=소유자가 확인자 및 주석자들의 다운로드, 인쇄, 복사를 허용하지 않습니다.
+externalChanges=External Changes
 extras=추가 도구
 facebook=페이스북
 failedToSaveTryReconnect=저장 실패, 재연결중
diff --git a/src/main/webapp/resources/dia_lt.txt b/src/main/webapp/resources/dia_lt.txt
index c7756fd44..44eba0422 100644
--- a/src/main/webapp/resources/dia_lt.txt
+++ b/src/main/webapp/resources/dia_lt.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_lv.txt b/src/main/webapp/resources/dia_lv.txt
index 084f33fe5..9e7afcd77 100644
--- a/src/main/webapp/resources/dia_lv.txt
+++ b/src/main/webapp/resources/dia_lv.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_ml.txt b/src/main/webapp/resources/dia_ml.txt
index 4a374883d..fbc922a71 100644
--- a/src/main/webapp/resources/dia_ml.txt
+++ b/src/main/webapp/resources/dia_ml.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_mr.txt b/src/main/webapp/resources/dia_mr.txt
index 873fe2b57..556cfcc16 100644
--- a/src/main/webapp/resources/dia_mr.txt
+++ b/src/main/webapp/resources/dia_mr.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_ms.txt b/src/main/webapp/resources/dia_ms.txt
index 7daa0da06..1f228b483 100644
--- a/src/main/webapp/resources/dia_ms.txt
+++ b/src/main/webapp/resources/dia_ms.txt
@@ -90,6 +90,7 @@ chatLeft={1} telah beredar
 chatWindowTitle=Sembang
 chooseAnOption=Pilih satu opsyen
 chromeApp=Aplikasi Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Mampat
 commitMessage=Hantar Mesej
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Mengeksport
 exportAs=Eksport sebagai
 exportOptionsDisabled=Pilihan eksport dilumpuhkan
 exportOptionsDisabledDetails=Pemilik telah melumpuhkan pilihan untuk memuat turun, mencetak atau menyalin untuk pengulas dan penonton pada fail ini.
+externalChanges=External Changes
 extras=Tambahan
 facebook=Facebook
 failedToSaveTryReconnect=Gagal untuk menyimpan, cuba untuk menyambung semula
diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt
index ad50d674d..6fb286ed1 100644
--- a/src/main/webapp/resources/dia_nl.txt
+++ b/src/main/webapp/resources/dia_nl.txt
@@ -2,7 +2,7 @@
 # https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE
 aboutDrawio=Over draw.io
 accessDenied=Toegang geweigerd
-action=Action
+action=Actie
 actualSize=Ware grootte
 add=Toevoegen
 addedFile={1} toegevoegd
@@ -90,6 +90,7 @@ chatLeft={1} is vertrokken
 chatWindowTitle=Chat
 chooseAnOption=Kies een optie
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Gecomprimeerd
 commitMessage=Bericht vastleggen
 csv=CSV
@@ -128,7 +129,7 @@ copy=Kopiëren
 copyConnect=Kopiëren bij verbinding
 copyOf=Kopie van {1}
 copyOfDrawing=Kopie van tekening
-copySize=Copy Size
+copySize=Afmetingen kopiëren
 copyStyle=Stijl kopiëren
 create=Aanmaken
 createNewDiagram=Nieuw diagram aanmaken
@@ -174,7 +175,7 @@ doubleClickOrientation=Dubbelklik om oriëntatie te wijzigen
 doubleClickTooltip=Dubbelklik om tekst in te voegen
 doubleClickChangeProperty=Dubbelklik om eigenschapsnaam te wijzigen
 download=Downloaden
-downloadDesktop=Download draw.io Desktop
+downloadDesktop=draw.io Bureaublad-app downloaden
 downloadAs=Downloaden als
 clickHereToSave=Klik hier om op te slaan.
 draftDiscarded=Concept genegeerd
@@ -244,6 +245,7 @@ exporting=Exporteren
 exportAs=Exporteren als
 exportOptionsDisabled=Exportopties uitgeschakeld
 exportOptionsDisabledDetails=De eigenaar heeft opties voor het downloaden, afdrukken of kopiëren uitgeschakeld voor commentatoren en bekijkers van dit bestand.
+externalChanges=External Changes
 extras=Extra's
 facebook=Facebook
 failedToSaveTryReconnect=Opslaan mislukt, opnieuw verbinden maken
@@ -513,7 +515,7 @@ paperSize=Papiergrootte
 pattern=Patroon
 paste=Plakken
 pasteHere=Hier plakken
-pasteSize=Paste Size
+pasteSize=Afmetingen plakken
 pasteStyle=Stijl plakken
 perimeter=Begrenzing
 permissionAnyone=Iedereen kan bewerken
@@ -553,7 +555,7 @@ realtimeTimeout=Het lijkt alsof u enkele wijzigingen hebt aangebracht terwijl u
 redo=Opnieuw
 refresh=Herladen
 regularExpression=Reguliere expressie
-relative=Relative
+relative=Relatief
 relativeUrlNotAllowed=Relatieve URL niet toegestaan
 rememberMe=Onthoud mij
 rememberThisSetting=Deze instelling onthouden
@@ -697,7 +699,7 @@ updatingPreview=Voorbeeld wordt bijgewerkt. Even wachten...
 updatingSelection=Selectie wordt bijgewerkt. Even wachten...
 upload=Uploaden
 url=URL
-useOffline=Use Offline
+useOffline=Offline gebruiken
 useRootFolder=Hoofdmap gebruiken?
 userManual=Gebruikershandleiding
 vertical=Verticaal
diff --git a/src/main/webapp/resources/dia_no.txt b/src/main/webapp/resources/dia_no.txt
index a5dda99f5..8a1f81d9f 100644
--- a/src/main/webapp/resources/dia_no.txt
+++ b/src/main/webapp/resources/dia_no.txt
@@ -90,6 +90,7 @@ chatLeft={1} har dratt
 chatWindowTitle=Chat
 chooseAnOption=Velg et alternativ
 chromeApp=Chrome-app
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Komprimert
 commitMessage=Forpliktende Melding
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Eksporterer
 exportAs=Eksporter som
 exportOptionsDisabled=Eksport alternativer deaktivert
 exportOptionsDisabledDetails=Eieren har deaktivert nedlastning, print og kopieringsalternativer for kommentatorer og seere for denne filen.
+externalChanges=External Changes
 extras=Ekstra
 facebook=Facebook
 failedToSaveTryReconnect=Feil under lagring, prøver å koble til på nytt
diff --git a/src/main/webapp/resources/dia_pl.txt b/src/main/webapp/resources/dia_pl.txt
index 0fac5cc72..3f29c1e11 100644
--- a/src/main/webapp/resources/dia_pl.txt
+++ b/src/main/webapp/resources/dia_pl.txt
@@ -90,6 +90,7 @@ chatLeft={1} opuścił
 chatWindowTitle=Chat 
 chooseAnOption=Wybierz opcjÄ™
 chromeApp=Aplikacja Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Skompresowany
 commitMessage=commit Wiadomość
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Eksportowanie
 exportAs=Eksportuj jako
 exportOptionsDisabled=Opcja eksporu została zablokowana
 exportOptionsDisabledDetails=Właściciel zablokował możliwość pobierania, drukowania i kopiowania dla przeglądających i komentujących.
+externalChanges=External Changes
 extras=Dodatki
 facebook=Facebook
 failedToSaveTryReconnect=Błąd zapisu, próbuję połączyć ponownie
diff --git a/src/main/webapp/resources/dia_pt-br.txt b/src/main/webapp/resources/dia_pt-br.txt
index addb78651..75efa0d06 100644
--- a/src/main/webapp/resources/dia_pt-br.txt
+++ b/src/main/webapp/resources/dia_pt-br.txt
@@ -90,6 +90,7 @@ chatLeft={1} saiu
 chatWindowTitle=Bate-papo
 chooseAnOption=Escolha uma opção
 chromeApp=Aplicativo Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Comprimido
 commitMessage=Cometer mensagem
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportando
 exportAs=Exportar como
 exportOptionsDisabled=Exportar opções desabilitadas
 exportOptionsDisabledDetails=O proprietário desabilitou as opções de download, impressão ou cópia para comentadores e visualizadores neste arquivo.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Falha ao salvar, tentando reconetar
diff --git a/src/main/webapp/resources/dia_pt.txt b/src/main/webapp/resources/dia_pt.txt
index 7c2132e18..2312d9f2a 100644
--- a/src/main/webapp/resources/dia_pt.txt
+++ b/src/main/webapp/resources/dia_pt.txt
@@ -90,6 +90,7 @@ chatLeft={1} saiu
 chatWindowTitle=Conversa
 chooseAnOption=Escolha uma opção
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compactado
 commitMessage=Mensagem da alteração
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportando
 exportAs=Exportar como
 exportOptionsDisabled=Exportar opções desactivadas
 exportOptionsDisabledDetails=O proprietário desactivou as opções de descarga, impressão ou cópia para comentadores e visuaizados neste ficheiro.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Falha ao salvar, tentando reconetar
diff --git a/src/main/webapp/resources/dia_ro.txt b/src/main/webapp/resources/dia_ro.txt
index 2103d0c86..5d2c15cd3 100644
--- a/src/main/webapp/resources/dia_ro.txt
+++ b/src/main/webapp/resources/dia_ro.txt
@@ -90,6 +90,7 @@ chatLeft={1} a plecat
 chatWindowTitle=Chat
 chooseAnOption=Alege o opţiune
 chromeApp=Aplicaţie Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Comprimat
 commitMessage=Comite un mesaj
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Se exportează
 exportAs=Exportează ca
 exportOptionsDisabled=Opțiunile de export au fost dezactivate
 exportOptionsDisabledDetails=Deținătorul a dezactivat posibilitațile de download, imprimare sau copiere pentru comentatorii și vizualizatorii acestei pagini.
+externalChanges=External Changes
 extras=Extra
 facebook=Facebook
 failedToSaveTryReconnect=Salvare eșuată, se încearcă reconectarea
diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt
index 04ee2c917..27d6bb61d 100644
--- a/src/main/webapp/resources/dia_ru.txt
+++ b/src/main/webapp/resources/dia_ru.txt
@@ -90,6 +90,7 @@ chatLeft={1} вышел
 chatWindowTitle=Чат
 chooseAnOption=Выберите вариант
 chromeApp=Приложение Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Сжато
 commitMessage=Сообщение при коммите
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Экспорт
 exportAs=Экспортировать как
 exportOptionsDisabled=Возможности экспорта отключены
 exportOptionsDisabledDetails=Владелец файла отключил возможности сохранения, печати или копирования данных при просмотре и комментировании этого файла.
+externalChanges=External Changes
 extras=Дополнительно
 facebook=Facebook
 failedToSaveTryReconnect=Ошибка при сохранении, выполняется повторное подключение
diff --git a/src/main/webapp/resources/dia_sk.txt b/src/main/webapp/resources/dia_sk.txt
index a98fde3cc..1682969da 100644
--- a/src/main/webapp/resources/dia_sk.txt
+++ b/src/main/webapp/resources/dia_sk.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_sl.txt b/src/main/webapp/resources/dia_sl.txt
index 7b4f62e1f..9b043589b 100644
--- a/src/main/webapp/resources/dia_sl.txt
+++ b/src/main/webapp/resources/dia_sl.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_sr.txt b/src/main/webapp/resources/dia_sr.txt
index 883a6072b..9f5c4ae1a 100644
--- a/src/main/webapp/resources/dia_sr.txt
+++ b/src/main/webapp/resources/dia_sr.txt
@@ -90,6 +90,7 @@ chatLeft={1} je otišao
 chatWindowTitle=Razgovor
 chooseAnOption=Izaberite opciju
 chromeApp=Chrome Aplikacija
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Komprimovan
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Izvoz
 exportAs=Izvezi kao
 exportOptionsDisabled=Mogućnost izvoza je onemogućena
 exportOptionsDisabledDetails=Vlasnik je onesposobio mogućnost preuzimanja, štampanja i kopiranja za komentatore i posmatrače ovog dokumenta.
+externalChanges=External Changes
 extras=Dodaci
 facebook=Facebook
 failedToSaveTryReconnect=Neuspelo snimanje, pokušaj rekonekcije
diff --git a/src/main/webapp/resources/dia_sv.txt b/src/main/webapp/resources/dia_sv.txt
index fbee7173b..47438b863 100644
--- a/src/main/webapp/resources/dia_sv.txt
+++ b/src/main/webapp/resources/dia_sv.txt
@@ -90,6 +90,7 @@ chatLeft={1} har lämnat
 chatWindowTitle=Chatt
 chooseAnOption=Välj ett alternativ
 chromeApp=Chrome app
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Komprimerad
 commitMessage=Skicka meddelande
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exportering
 exportAs=Exportera som
 exportOptionsDisabled=Exporteringsval inaktiverade
 exportOptionsDisabledDetails=Ägaren har inaktiverat nerladdning, skriv ut eller kopiera för kommenterare och åskådare för denna fil.
+externalChanges=External Changes
 extras=Extrafunktioner
 facebook=Facebook
 failedToSaveTryReconnect=Kunde inte spara, försöker återansluta
diff --git a/src/main/webapp/resources/dia_sw.txt b/src/main/webapp/resources/dia_sw.txt
index 8a094b37c..ab8c367d2 100644
--- a/src/main/webapp/resources/dia_sw.txt
+++ b/src/main/webapp/resources/dia_sw.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_ta.txt b/src/main/webapp/resources/dia_ta.txt
index 8c47a3912..770b3d97c 100644
--- a/src/main/webapp/resources/dia_ta.txt
+++ b/src/main/webapp/resources/dia_ta.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_te.txt b/src/main/webapp/resources/dia_te.txt
index 02259b7c0..8bafe26c1 100644
--- a/src/main/webapp/resources/dia_te.txt
+++ b/src/main/webapp/resources/dia_te.txt
@@ -90,6 +90,7 @@ chatLeft={1} has left
 chatWindowTitle=Chat
 chooseAnOption=Choose an option
 chromeApp=Chrome App
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Exporting
 exportAs=Export as
 exportOptionsDisabled=Export options disabled
 exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.
+externalChanges=External Changes
 extras=Extras
 facebook=Facebook
 failedToSaveTryReconnect=Failed to save, trying to reconnect
@@ -252,7 +254,7 @@ feedback=Feedback
 feedbackSent=Feedback successfully sent.
 floorplans=Floorplans
 file=File
-fileChangedOverwrite=File was changed. Overwrite changes?
+fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?
 overwrite=Overwrite
 filename=Filename
 fileExists=File already exists
diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt
index ff8bd865a..e50b32e02 100644
--- a/src/main/webapp/resources/dia_th.txt
+++ b/src/main/webapp/resources/dia_th.txt
@@ -90,6 +90,7 @@ chatLeft={1} ได้ออกจากระบบ
 chatWindowTitle=แชท
 chooseAnOption=เลือกหนึ่งตัวเลือก
 chromeApp=โครมแอพลิเคชั่น
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=บีบอัดแล้ว
 commitMessage=ข้อความสัญญา
 csv=CSV
@@ -244,6 +245,7 @@ exporting=การส่่งออก
 exportAs=ส่งออกเป็น
 exportOptionsDisabled=ตัวเลือกการส่งออกถูกปิดใช้งาน
 exportOptionsDisabledDetails=เจ้าของได้ปิดการใช้งานดาวน์โหลด พิมพ์หรือสำเนาสำหรับผู้แสดงความเห็นและผู้ชมไฟล์นี้
+externalChanges=External Changes
 extras=เอ็กซ์ตร้า
 facebook=Facebook
 failedToSaveTryReconnect=การบันทึกล้มเหลว กำลังพยายามเชื่อมต่อใหม่
diff --git a/src/main/webapp/resources/dia_tr.txt b/src/main/webapp/resources/dia_tr.txt
index 40b27479e..e286510e2 100644
--- a/src/main/webapp/resources/dia_tr.txt
+++ b/src/main/webapp/resources/dia_tr.txt
@@ -90,6 +90,7 @@ chatLeft={1} sohbeti terk etti
 chatWindowTitle=Sohbet
 chooseAnOption=Bir seçenek seçin
 chromeApp=Chrome Uygulaması
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Sıkıştırılmış
 commitMessage=Mesaj oluÅŸtur
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Dışa aktarma
 exportAs=Farklı dışa aktar
 exportOptionsDisabled=Dışa aktarma seçenekleri devre dışı
 exportOptionsDisabledDetails=Yetkili, indirme, basım veya yorumlayıcılar için kopyalama seçeneklerini devre dışı bıraktı.
+externalChanges=External Changes
 extras=Ekstralar
 facebook=Facebook
 failedToSaveTryReconnect=Kaydetme başarısız, tekrar bağlanmayı deniyor
diff --git a/src/main/webapp/resources/dia_uk.txt b/src/main/webapp/resources/dia_uk.txt
index a492a04ab..73e31cbd2 100644
--- a/src/main/webapp/resources/dia_uk.txt
+++ b/src/main/webapp/resources/dia_uk.txt
@@ -90,6 +90,7 @@ chatLeft={1} вийшов
 chatWindowTitle=Чат
 chooseAnOption=Оберіть варіант
 chromeApp=Додаток Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Стисло
 commitMessage=Повідомлення при коміті
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Експортуємо
 exportAs=Експортувати як
 exportOptionsDisabled=Можливості експорту відключено
 exportOptionsDisabledDetails=Власник відключив можливості скачування, друку та копіювання цього файлу для коментаторів та глядачів.
+externalChanges=External Changes
 extras=Додатково
 facebook=Facebook
 failedToSaveTryReconnect=Не вдалося зберегти, спроба повторного підключення
diff --git a/src/main/webapp/resources/dia_vi.txt b/src/main/webapp/resources/dia_vi.txt
index eddc529c4..e2486cd6e 100644
--- a/src/main/webapp/resources/dia_vi.txt
+++ b/src/main/webapp/resources/dia_vi.txt
@@ -90,6 +90,7 @@ chatLeft={1} đã thoát
 chatWindowTitle=Chat
 chooseAnOption=Chọn một tùy chọn
 chromeApp=Ứng dụng Chrome
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=Đã nén
 commitMessage=Nội dung thay đổi
 csv=CSV
@@ -244,6 +245,7 @@ exporting=Đang xuất tập tin
 exportAs=Xuất tập tin dưới dạng
 exportOptionsDisabled=Lựa chọn xuất tập tin bị vô hiệu hóa
 exportOptionsDisabledDetails=Người sở hữu đã vô hiệu hóa quyền tải xuống, in hoặc sao chép đối với người bình luận hoặc người xem tập tin này.
+externalChanges=External Changes
 extras=Bổ sung
 facebook=Facebook
 failedToSaveTryReconnect=Lưu thất bại, đang thử kết nối lại
diff --git a/src/main/webapp/resources/dia_zh-tw.txt b/src/main/webapp/resources/dia_zh-tw.txt
index bcd050bea..c6fa0c5d4 100644
--- a/src/main/webapp/resources/dia_zh-tw.txt
+++ b/src/main/webapp/resources/dia_zh-tw.txt
@@ -90,6 +90,7 @@ chatLeft={1}已離開
 chatWindowTitle=交談
 chooseAnOption=請選擇一項
 chromeApp=Chrome應用
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=已壓縮
 commitMessage=提交訊息
 csv=CSV
@@ -244,6 +245,7 @@ exporting=匯出中
 exportAs=匯出為
 exportOptionsDisabled=已禁用匯出
 exportOptionsDisabledDetails=所有者已禁止評論者和瀏覽者下載,列印或複制此檔案。
+externalChanges=External Changes
 extras=å…¶ä»–
 facebook=Facebook
 failedToSaveTryReconnect=存檔失敗,正嘗試重新連線
diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt
index cc4915c05..4061c1b30 100644
--- a/src/main/webapp/resources/dia_zh.txt
+++ b/src/main/webapp/resources/dia_zh.txt
@@ -90,6 +90,7 @@ chatLeft={1}已离开
 chatWindowTitle=聊天
 chooseAnOption=请选择一项
 chromeApp=Chrome应用软件
+collaborativeEditingNotice=Important Notice for Collaborative Editing
 compressed=已压缩
 commitMessage=提交信息
 csv=CSV
@@ -244,6 +245,7 @@ exporting=导出中
 exportAs=导出为
 exportOptionsDisabled=已禁止导出
 exportOptionsDisabledDetails=所有者已禁止评论者及浏览者下载、打印或复制该文件。
+externalChanges=External Changes
 extras=其它
 facebook=Facebook
 failedToSaveTryReconnect=保存失败,正在尝试重新连接
-- 
GitLab