From 5ad7d27418361ae30064f04c5146bba425acd430 Mon Sep 17 00:00:00 2001 From: David Benson Date: Mon, 3 Oct 2016 17:15:00 +0100 Subject: [PATCH] 5.7.0.8.2 release --- ChangeLog | 4 + VERSION | 2 +- .../importer/GliffyDiagramConverter.java | 124 +- .../mxgraph/io/gliffy/model/GliffyText.java | 66 +- src/com/mxgraph/io/gliffy/model/Object.java | 41 +- src/com/mxgraph/online/IconSearchServlet.java | 113 - src/com/mxgraph/online/OpenServlet.java | 13 +- war/WEB-INF/appengine-web.xml | 2 +- war/cache.manifest | 2 +- war/electron.js | 7 +- war/images/sidebar-veeam.png | Bin 0 -> 347938 bytes war/index.html | 21 +- war/js/app.min.js | 259 +- war/js/atlas-viewer.min.js | 76 +- war/js/atlas.min.js | 253 +- war/js/diagramly/Devel.js | 1 + war/js/diagramly/EditorUi.js | 5 + war/js/diagramly/ElectronApp.js | 448 + war/js/diagramly/sidebar/Sidebar-Veeam.js | 486 + war/js/diagramly/sidebar/Sidebar.js | 15 +- war/js/embed-static.min.js | 752 +- war/js/mxgraph/Graph.js | 115 +- war/js/reader.min.js | 752 +- war/js/viewer.min.js | 76 +- war/stencils.xml | 23016 ++++++++++++++++ war/stencils/veeam/2d.xml | 11861 ++++++++ war/stencils/veeam/3d.xml | 11155 ++++++++ 27 files changed, 48403 insertions(+), 1262 deletions(-) delete mode 100644 src/com/mxgraph/online/IconSearchServlet.java create mode 100644 war/images/sidebar-veeam.png create mode 100644 war/js/diagramly/ElectronApp.js create mode 100644 war/js/diagramly/sidebar/Sidebar-Veeam.js create mode 100644 war/stencils/veeam/2d.xml create mode 100644 war/stencils/veeam/3d.xml diff --git a/ChangeLog b/ChangeLog index 53b6c91e..2cdc26d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +03-SEP-2016: 5.7.0.8.2 + +- Adds tolerance, uses fewer cells in scissors tool + 27-SEP-2016: 5.7.0.7 - Adds filename for editors in Atlassian cloud plugins diff --git a/VERSION b/VERSION index 8d74af96..e931ad90 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.7.0.7 \ No newline at end of file +5.7.0.8.2 \ No newline at end of file diff --git a/src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java b/src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java index afb568c8..2e0af51d 100644 --- a/src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java +++ b/src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java @@ -79,15 +79,16 @@ public class GliffyDiagramConverter { this.gliffyDiagram = new GsonBuilder().create().fromJson(diagramString, Diagram.class); collectVerticesAndConvert(vertices, gliffyDiagram.stage.getObjects(), null); + + //sort objects by the order specified in the Gliffy diagram + sortObjectsByOrder(gliffyDiagram.stage.getObjects()); drawioDiagram.getModel().beginUpdate(); try { - // sort objects by the order specified in the Gliffy diagram - sortObjectsByOrder(gliffyDiagram.stage.getObjects()); for (Object obj : gliffyDiagram.stage.getObjects()) { - importObject(obj, null); + importObject(obj, obj.parent); } } finally { @@ -118,24 +119,26 @@ public class GliffyDiagramConverter { } /** - * Imports the objects into the draw.io diagram. Recursively adds the - * children of groups and swimlanes - * + * Imports the objects into the draw.io diagram. Recursively adds the children */ - private void importObject(Object obj, mxCell parent) { + private void importObject(Object obj, Object gliffyParent) { - if (obj.isGroup() || obj.isMindmap() || obj.isShape() || obj.isText() || obj.isImage() || obj.isSwimlane() || obj.isSvg()) { + mxCell parent = gliffyParent != null ? gliffyParent.mxObject : null; + + if (!obj.isLine()) { drawioDiagram.addCell(obj.mxObject, parent); - if (obj.isGroup() || obj.isSwimlane()) { + if (obj.hasChildren()) { if (!obj.isSwimlane())// sort the children except for swimlanes, // their order value is "auto" sortObjectsByOrder(obj.children); - for (Object go : obj.children) { - importObject(go, go.parent.mxObject); + for (Object child : obj.children) { + //do not import text as a child object, use inline text + if(!child.isText()) + importObject(child, obj); } } - } else if(obj.isLine()) { + } else { // gets the terminal cells for the edge mxCell startTerminal = getTerminalCell(obj, true); mxCell endTerminal = getTerminalCell(obj, false); @@ -144,10 +147,6 @@ public class GliffyDiagramConverter { applyControlPoints(obj, startTerminal, endTerminal); } - else - { - logger.warning("Unrecognized object, uid : " + obj.uid); - } } private void sortObjectsByOrder(Collection values) { @@ -225,17 +224,19 @@ public class GliffyDiagramConverter { * up terminal cells for edges */ private void collectVerticesAndConvert(Map vertices, Collection objects, Object parent) { + for (Object object : objects) { - object.mxObject = convertGliffyObject(object, null); + object.parent = parent; - - if (object.isGroup())// only do this recursively for groups, swimlanes have children w/o uid - { + + convertGliffyObject(object, parent); + + if(!object.isLine()) vertices.put(object.id, object); + + // don't collect for swimlanes and mindmaps, their children are treated differently + if (object.hasChildren() && !object.isSwimlane() && !object.isMindmap()) collectVerticesAndConvert(vertices, object.children, object); - } else if (object.isShape() || object.isText() || object.isImage() || object.isSwimlane() || object.isSvg() || object.isMindmap()) { - vertices.put(object.id, object); - } } } @@ -261,9 +262,9 @@ public class GliffyDiagramConverter { * * */ - private mxCell convertGliffyObject(Object gliffyObject, mxCell parent) { + private mxCell convertGliffyObject(Object gliffyObject, Object parent) { mxCell cell = new mxCell(); - cell.setParent(parent); + StringBuilder style = new StringBuilder(); mxGeometry geometry = new mxGeometry((int) gliffyObject.x, (int) gliffyObject.y, (int) gliffyObject.width, (int) gliffyObject.height); @@ -279,12 +280,11 @@ public class GliffyDiagramConverter { } String text = null; - Object textObject = null; + Object textObject = gliffyObject.getTextObject(); String link = null; if (graphic != null) { - textObject = gliffyObject.getTextObject(); link = gliffyObject.getLink(); if (gliffyObject.isShape()) { @@ -305,11 +305,10 @@ public class GliffyDiagramConverter { style.append("opacity=" + shape.opacity * 100).append(";"); style.append(DashStyleMapping.get(shape.dashStyle)); - style.append("whiteSpace=wrap;"); - text = gliffyObject.getTextRecursively(); } else if (gliffyObject.isLine()) { - GliffyLine line = graphic.getLine(); + GliffyLine line = graphic.Line; + cell.setEdge(true); style.append("strokeWidth=" + line.strokeWidth).append(";"); style.append("strokeColor=" + line.strokeColor).append(";"); @@ -320,20 +319,27 @@ public class GliffyDiagramConverter { geometry.setX(0); geometry.setY(0); - - text = gliffyObject.getText(); + } else if (gliffyObject.isText()) { + textObject = gliffyObject; cell.setVertex(true); - style.append("text;whiteSpace=wrap;"); - text = gliffyObject.getText(); + style.append("text;whiteSpace=wrap;html=1;nl2Br=0;"); + cell.setValue(gliffyObject.getText()); + + //if text is a child of a cell, use relative geometry and set X and Y to 0 + if(gliffyObject.parent != null && !gliffyObject.parent.isGroup()) + { + mxGeometry parentGeometry = gliffyObject.parent.mxObject.getGeometry(); + cell.setGeometry(new mxGeometry(0, 0, parentGeometry.getWidth(), parentGeometry.getHeight())); + cell.getGeometry().setRelative(true); + } + } else if (gliffyObject.isImage()) { GliffyImage image = graphic.getImage(); cell.setVertex(true); style.append("shape=" + StencilTranslator.translate(gliffyObject.uid)).append(";"); style.append("image=" + image.getUrl()).append(";"); - - text = gliffyObject.getText(); } else if (gliffyObject.isSvg()) { GliffySvg svg = graphic.Svg; @@ -350,7 +356,7 @@ public class GliffyDiagramConverter { style.append(StencilTranslator.translate(gliffyObject.uid)).append(";"); boolean vertical = true; - gliffyObject.rotation = 0; + if (gliffyObject.uid.startsWith(Object.H_SWIMLANE)) { vertical = false; cell.getGeometry().setWidth(gliffyObject.height); @@ -359,6 +365,8 @@ public class GliffyDiagramConverter { } Object header = gliffyObject.children.get(0);// first child is the header of the swimlane + Object headerText = header.children.get(0); + gliffyObject.children.remove(header); GliffyShape shape = header.graphic.getShape(); @@ -368,7 +376,7 @@ public class GliffyDiagramConverter { style.append("strokeColor=" + shape.strokeColor).append(";"); style.append("whiteSpace=wrap;"); - text = header.getText(); + text = headerText.getText(); for (int i = 0; i < gliffyObject.children.size(); i++) // rest of the children are lanes { @@ -387,15 +395,27 @@ public class GliffyDiagramConverter { mxCell mxLane = new mxCell(); mxLane.setVertex(true); cell.insert(mxLane); - mxLane.setValue(gLane.getText()); + mxLane.setValue(gLane.children.get(0).getText()); mxLane.setStyle(laneStyle.toString()); mxGeometry childGeometry = new mxGeometry(gLane.x, gLane.y, vertical ? gLane.width : gLane.height, vertical ? gLane.height : gLane.width); mxLane.setGeometry(childGeometry); gLane.mxObject = mxLane; } - } else if (gliffyObject.isMindmap()) { - Object child = gliffyObject.children.get(0); - GliffyMindmap mindmap = child.graphic.Mindmap; + } + /* Gliffy mindmap objects have a 3 level hierarchy + * + * mindmap + * rectangle + * text + * + * Since mindmap object already converts to rectangle, rectangle object is removed and text object is put in it's place + * + */ + else if (gliffyObject.isMindmap()) { + Object rectangle = gliffyObject.children.get(0); + Object textObj = rectangle.children.get(0); + + GliffyMindmap mindmap = rectangle.graphic.Mindmap; style.append("shape=" + StencilTranslator.translate(gliffyObject.uid)).append(";"); style.append("shadow=" + (mindmap.dropShadow ? 1 : 0)).append(";"); @@ -409,7 +429,12 @@ public class GliffyDiagramConverter { cell.setVertex(true); - text = child.getTextRecursively(); + mxCell textObjMx = convertGliffyObject(textObj, gliffyObject); + textObjMx.setGeometry(new mxGeometry(0, 0, gliffyObject.width, gliffyObject.height)); + textObjMx.getGeometry().setRelative(true); + + //sets the grandchild as a child + gliffyObject.children.set(0, textObj); } if (gliffyObject.rotation != 0) { @@ -419,9 +444,11 @@ public class GliffyDiagramConverter { if (!gliffyObject.isLine() && textObject != null) { style.append(textObject.graphic.getText().getStyle()); } - - if (text != null && !text.equals("")) { - style.append("html=1;nl2Br=0;");// nl2Br=0 stops newline from becoming
+ + if(textObject != null) + { + cell.setValue(textObject.getText()); + style.append("html=1;nl2Br=0;whiteSpace=wrap"); } if(link != null) @@ -434,15 +461,10 @@ public class GliffyDiagramConverter { if(text != null && !text.equals("")) uo.setAttribute("label", text); } - else if(text != null && !text.equals("")) - { - cell.setValue(text); - } cell.setStyle(style.toString()); gliffyObject.mxObject = cell; return cell; } - } diff --git a/src/com/mxgraph/io/gliffy/model/GliffyText.java b/src/com/mxgraph/io/gliffy/model/GliffyText.java index f55655f6..e0e62a00 100644 --- a/src/com/mxgraph/io/gliffy/model/GliffyText.java +++ b/src/com/mxgraph/io/gliffy/model/GliffyText.java @@ -9,6 +9,9 @@ public class GliffyText private String html; private String valign; + + //extracted from html + private String halign; private String vposition; @@ -28,8 +31,7 @@ public class GliffyText private static Pattern pattern = Pattern.compile(""); - private static Pattern textAlignPattern = Pattern.compile( - ".*text-align: ?(left|center|right).*", Pattern.DOTALL); + private static Pattern textAlign = Pattern.compile(".*(text-align: ?(left|center|right);).*", Pattern.DOTALL); public GliffyText() { @@ -37,50 +39,40 @@ public class GliffyText public String getHtml() { + halign = halign == null ? getHorizontalTextAlignment() : halign; return replaceParagraphWithDiv(html); } + //this is never invoked by Gson builder public void setHtml(String html) { - this.html = html; } public String getStyle() { StringBuilder sb = new StringBuilder(); + //vertical label position if (vposition.equals("above")) - { - sb.append("verticalLabelPosition=top;").append( - "verticalAlign=bottom;"); - } + sb.append("verticalLabelPosition=top;"); else if (vposition.equals("below")) - { - sb.append("verticalLabelPosition=bottom;").append( - "verticalAlign=top;"); - } + sb.append("verticalLabelPosition=bottom;"); else if (vposition.equals("none")) - { - sb.append("verticalAlign=").append(valign).append(";"); - } - - if (hposition.equals("left")) - { - sb.append("labelPosition=left;").append("align=right;"); - } - else if (hposition.equals("right")) - { - sb.append("labelPosition=right;").append("align=left;"); - } - else if (hposition.equals("none")) - { - String hAlign = getHorizontalTextAlignment(); - if (hAlign != null) - { - sb.append("align=").append(hAlign).append(";"); - } - } - + sb.append("verticalLabelPosition=middle;"); + + //vertical label align + sb.append("verticalAlign=").append(valign).append(";"); + + //horizontal label position + if (hposition.equals("none")) + sb.append("labelPosition=center;"); + else + sb.append("labelPosition=").append(hposition).append(";"); + + //horizontal label align + if (halign != null) + sb.append("align=").append(halign).append(";"); + sb.append("spacingLeft=").append(paddingLeft).append(";"); sb.append("spacingRight=").append(paddingRight).append(";"); sb.append("spacingTop=").append(paddingTop).append(";"); @@ -101,13 +93,19 @@ public class GliffyText return sb.length() > 0 ? sb.toString() : html; } + /** + * Extracts horizontal text alignment from html and removes it + * so it does not interfere with alignment set in mxCell style + * @return horizontal text alignment or null if there is none + */ private String getHorizontalTextAlignment() { - Matcher m = textAlignPattern.matcher(html); + Matcher m = textAlign.matcher(html); if (m.matches()) { - return m.group(1); + html = html.replaceAll("text-align: ?\\w*;", ""); + return m.group(2); } return null; diff --git a/src/com/mxgraph/io/gliffy/model/Object.java b/src/com/mxgraph/io/gliffy/model/Object.java index f64bbfa8..6206a7f8 100644 --- a/src/com/mxgraph/io/gliffy/model/Object.java +++ b/src/com/mxgraph/io/gliffy/model/Object.java @@ -180,48 +180,9 @@ public class Object return null; } - public String getTextRecursively() - { - StringBuilder sb = new StringBuilder(); - - List textObjs = new ArrayList(); - getTextObjects(this, textObjs); - - Iterator it = textObjs.iterator(); - - while (it.hasNext()) - { - Object to = it.next(); - sb.append(to.graphic.getText().getHtml()); - if (it.hasNext()) - sb.append("
"); - } - - return sb.toString(); - } - public String getText() { - if (isText()) - return graphic.getText().getHtml(); - - Object to = getTextObject(); - - return to != null ? to.graphic.getText().getHtml() : null; - - } - - private void getTextObjects(Object obj, List objects) - { - if (obj.isText()) - objects.add(obj); - else if (obj.children != null) - { - for (Object ob : obj.children) - { - getTextObjects(ob, objects); - } - } + return graphic.getText().getHtml(); } public String getLink() diff --git a/src/com/mxgraph/online/IconSearchServlet.java b/src/com/mxgraph/online/IconSearchServlet.java deleted file mode 100644 index 425a7a81..00000000 --- a/src/com/mxgraph/online/IconSearchServlet.java +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Copyright (c) 2006-2016, JGraph Ltd - * Copyright (c) 2006-2016, Gaudenz Alder - */ -package com.mxgraph.online; - -import java.io.IOException; -import java.net.URL; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * Servlet implementation class OpenServlet - */ -public class IconSearchServlet extends HttpServlet -{ - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Path component under war/ to locate iconfinder_key file. - */ - public static final String API_KEY_FILE_PATH = "/WEB-INF/iconfinder_key"; - - /** - * API key for iconfinder. - */ - public static String API_KEY = null; - - private static final Logger log = Logger.getLogger(IconSearchServlet.class - .getName()); - - /** - * @see HttpServlet#HttpServlet() - */ - public IconSearchServlet() - { - super(); - } - - /** - * Loads the key. - */ - protected void updateKey() - { - if (API_KEY == null) - { - try - { - API_KEY = Utils.readInputStream( - getServletContext().getResourceAsStream( - getAPIKeyFilePath())).replaceAll("\n", ""); - } - catch (IOException e) - { - throw new RuntimeException("API key file path invalid."); - } - } - - if (API_KEY.equals("Replace_with_your_own_iconfinder_key")) - { - throw new RuntimeException("Iconfinder API key template used, replace it with your own."); - } - } - - public void doGet(HttpServletRequest request, HttpServletResponse response) - { - doPost(request, response); - } - - public void doPost(HttpServletRequest request, HttpServletResponse response) - { - updateKey(); - - try - { - String query = request.getParameter("q"); - URL url = new URL("https://www.iconfinder.com/xml/search/?q=" - + Utils.encodeURIComponent(query, - Utils.CHARSET_FOR_URL_ENCODING) + "&p=" - + request.getParameter("p") + "&c=" - + request.getParameter("c") + "&l=" - + request.getParameter("l") - + "&price=nonpremium&min=4&max=130&api_key=" + API_KEY); - - log.log(Level.CONFIG, "iconsearch=" + query); - - response.addHeader("Access-Control-Allow-Origin", "*"); - response.addHeader("Access-Control-Allow-Methods", - "POST, GET, OPTIONS, PUT, DELETE, HEAD"); - - Utils.copy(url.openStream(), response.getOutputStream()); - response.getOutputStream().flush(); - response.getOutputStream().close(); - } - catch (Exception e) - { - System.out.println(e.getMessage()); - e.printStackTrace(); - } - } - - protected String getAPIKeyFilePath() - { - return API_KEY_FILE_PATH; - } -} diff --git a/src/com/mxgraph/online/OpenServlet.java b/src/com/mxgraph/online/OpenServlet.java index 0d3bb7ea..a3fcda00 100644 --- a/src/com/mxgraph/online/OpenServlet.java +++ b/src/com/mxgraph/online/OpenServlet.java @@ -168,7 +168,7 @@ public class OpenServlet extends HttpServlet { // Creates a graph that contains a model but does not validate // since that is not needed for the model and not allowed on GAE - mxGraph graph = new mxGraph() + mxGraph graph = new mxGraphHeadless() { public mxRectangle graphModelChanged(mxIGraphModel sender, List changes) @@ -176,12 +176,21 @@ public class OpenServlet extends HttpServlet return null; } }; + mxGraphMlCodec.decode(mxXmlUtils.parseXml(upfile), graph); xml = mxXmlUtils.getXml(new mxCodec().encode(graph.getModel())); } else if (ENABLE_VDX_SUPPORT && (vdx || vsdx)) { - mxGraph graph = new mxGraphHeadless(); + mxGraph graph = new mxGraphHeadless() + { + public mxRectangle graphModelChanged(mxIGraphModel sender, + List changes) + { + return null; + } + }; + graph.setConstrainChildren(false); mxVsdxCodec vdxCodec = new mxVsdxCodec(); diff --git a/war/WEB-INF/appengine-web.xml b/war/WEB-INF/appengine-web.xml index 5c3146a6..112f3c0d 100644 --- a/war/WEB-INF/appengine-web.xml +++ b/war/WEB-INF/appengine-web.xml @@ -2,7 +2,7 @@ drawdotio - 5-7-0-7 + 5-7-0-8-2 diff --git a/war/cache.manifest b/war/cache.manifest index 4aaa9736..7cb398ad 100644 --- a/war/cache.manifest +++ b/war/cache.manifest @@ -1,7 +1,7 @@ CACHE MANIFEST # THIS FILE WAS GENERATED. DO NOT MODIFY! -# 09/27/2016 11:52 AM +# 10/03/2016 03:57 PM /app.html /index.html?offline=1 diff --git a/war/electron.js b/war/electron.js index 0311dc45..555831e7 100644 --- a/war/electron.js +++ b/war/electron.js @@ -1,4 +1,9 @@ -const electron = require('electron') +const electron = require('electron'); +const remote = electron.remote; +const dialog = electron.dialog; +var fs = require('fs'); +var path = require('path'); + // Module to control application life. const app = electron.app // Module to create native browser window. diff --git a/war/images/sidebar-veeam.png b/war/images/sidebar-veeam.png new file mode 100644 index 0000000000000000000000000000000000000000..c096cb938cde8ea5b8b2f6264d8c28cbe9e9cbbd GIT binary patch literal 347938 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%0A0M9t97 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%0D6iOGopeZ0A}8bvtm0g) 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 F{{wiqGO_>w literal 0 HcmV?d00001 diff --git a/war/index.html b/war/index.html index b179d74a..7ed53bda 100644 --- a/war/index.html +++ b/war/index.html @@ -29,7 +29,6 @@ * - test=1: For developers only * - drawdev=1: For developers only * - export=URL for export: For developers only - * - pages=1: For developers only * - page=n: For developers only * - ignoremime=1: For developers only (see DriveClient.js). Use Cmd-S to override mime. * - createindex=1: For developers only (see etc/build/README) @@ -322,6 +321,12 @@ mxscript('js/app.min.js'); } + if (window && window.process && window.process.type) + { + // Electron + mxscript('js/diagramly/ElectronApp.js'); + } + // Adds basic error handling window.onerror = function() { @@ -332,6 +337,7 @@ status.innerHTML = 'Page could not be loaded. Please try refreshing.'; } }; + @@ -370,12 +376,12 @@ - Source code now on Github + Fork us on Github - #1 Rated Confluence Add-on @@ -390,6 +396,13 @@ */ App.main(); +// Logs footer1 clicks +document.getElementById("geFooterLink1").onclick = function() +{ + var img = new Image(); + img.src = 'log?msg=geFooterLink1:' + '&v=' + encodeURIComponent(EditorUi.VERSION); +} + /** * Analytics */ diff --git a/war/js/app.min.js b/war/js/app.min.js index b15f7b31..584614ad 100644 --- a/war/js/app.min.js +++ b/war/js/app.min.js @@ -84,7 +84,7 @@ u.URIEFFECTS=u.J;u.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};u.ltypes=u.M;u.I={"a::hr e){var c,g=/(<\/|<\!--|<[!?]|[&<>])/g;c=b+"";if(ga)c=c.split(g);else{for(var k=[],l=0,n;(n=g.exec(c))!==f;)k.push(c.substring(l,n.index)),k.push(n[0]),l=n.index+n[0].length;k.push(c.substring(l));c=k}t(a,c,0,{r:d,C:d},e)}}function u(b,a,d,e,c){return function(){t(b,a,d,e,c)}}function t(a,d,e,f,g){try{a.H&&0==e&&a.H(g);for(var k,l,n,m=d.length;el||Math.abs(k)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e, -f),this.isSpaceEvent(a)?(e=this.x+this.width,f=this.y+this.height,g=this.graph.view.scale,mxEvent.isAltDown(a.getEvent())||(this.width=this.graph.snap(this.width/g)*g,this.height=this.graph.snap(this.height/g)*g,this.x=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,c,d):null,d=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),e):null)?this.fixedHandleImage:null!=e&&null!=c?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-=1);return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var B=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?u:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return B.apply(this,arguments)};var E=mxGraphHandler.prototype.getBoundingBox; -mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var a=this.graph.getModel(),d=a.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(a.isEdge(d)&&null!=c&&c.relative&&(a=this.graph.view.getState(b[0]),null!=a&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox))return mxRectangle.fromRectangle(a.text.boundingBox)}return E.apply(this,arguments)};var G=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var a= -this.graph.getModel(),d=a.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return a.isEdge(d)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(a=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(a.x),Math.round(a.y),Math.round(a.width),Math.round(a.height))):G.apply(this,arguments)};var F=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,a){var d=this.graph.getModel(),c=d.getParent(this.state.cell), -e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(a)==mxEvent.ROTATION_HANDLE||!d.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&F.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,d),this.isSpaceEvent(a)?(c=this.x+this.width,d=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(a.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width=this.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)),a.consume()}};var z=mxRubberband.prototype.reset; +mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);z.apply(this,arguments)};var y=(new Date).getTime(),x=0,D=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,a,d,c){D.apply(this,arguments);d!=this.currentTerminalState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y;this.currentTerminalState=d};var A=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent= +function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length- +1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,c,d):null,d=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),e):null)?this.fixedHandleImage:null!=e&&null!=c?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-=1);return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR, +mxConstants.HANDLE_STROKECOLOR)};var B=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?u:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return B.apply(this,arguments)};var E=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var a=this.graph.getModel(),d=a.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(a.isEdge(d)&& +null!=c&&c.relative&&(a=this.graph.view.getState(b[0]),null!=a&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox))return mxRectangle.fromRectangle(a.text.boundingBox)}return E.apply(this,arguments)};var G=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var a=this.graph.getModel(),d=a.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return a.isEdge(d)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox? +(a=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(a.x),Math.round(a.y),Math.round(a.width),Math.round(a.height))):G.apply(this,arguments)};var F=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,a){var d=this.graph.getModel(),c=d.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(a)==mxEvent.ROTATION_HANDLE||!d.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&& +F.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()g?"":d.substring(g+1));this.createVertexTemplateEntry(d,parseInt(b[a].getAttribute("w")),parseInt(b[a].getAttribute("h")),"",c.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}}))}; -"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,a,d){var c=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var f=document.createElement("button");f.style.marginLeft="4px";mxUtils.write(f,"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(m){if("BUTTON"==mxEvent.getSource(m).nodeName){var p= -b.cloneNode(!0);p.style.backgroundImage="";p.style.textDecoration="none";p.style.fontWeight="bold";p.style.fontSize="14px";p.style.color="rgb(80, 80, 80)";p.style.width="456px";p.style.backgroundColor="#ffffff";p.style.paddingLeft="6px";m=p.getElementsByTagName("button")[0];m.parentNode.removeChild(m);m=a.cloneNode(!0);m.style.backgroundColor="#ffffff";m.style.borderColor="transparent";m.style.width="456px";p='\x3c!DOCTYPE html\x3e\x3chtml\x3e\x3chead\x3e\x3clink rel\x3d"stylesheet" type\x3d"text/css" href\x3d"https://www.draw.io/styles/grapheditor.css"\x3e\x3c/head\x3e\x3cbody style\x3d"background:#ffffff;font-family:Helvetica,Arial;"\x3e'+ -p.outerHTML+m.outerHTML+"\x3c/body\x3e\x3c/html\x3e";m.style.position="absolute";window.document.body.appendChild(m);var r=m.clientHeight+18;m.parentNode.removeChild(m);(new mxXmlRequest(EXPORT_URL,"w\x3d456\x26h\x3d"+r+"\x26html\x3d"+encodeURIComponent(this.editorUi.editor.compress(p)))).simulate(document,"_blank")}else{if("none"==a.style.display){if(c)b.appendChild(f);else if(c=!0,null!=d){null!=f.parentNode&&f.parentNode.removeChild(f);b.style.cursor="wait";var s=b.innerHTML;b.innerHTML=mxResources.get("loading")+ -"...";window.setTimeout(function(){d(a);b.style.cursor="";b.innerHTML=s;b.appendChild(f)},0)}else b.appendChild(f);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=f.parentNode&&f.parentNode.removeChild(f);mxEvent.consume(m)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape\x3d"==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6, -a)}return null};var c=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,d){var f=c.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&f.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&f.push(this.shapetags[a]));return f};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,d=this.signs,c=this.rack,f=this.pids,m=this.cisco,p=this.sysml,r=this.eip,s=this.gmdl;"1"==urlParams.createindex&& -(mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(a,!1);this.addAWSPalette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette(); -this.addElectricalPalette();this.addOfficePalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html\x3d1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;"+mxConstants.STYLE_STROKEWIDTH+"\x3d2;strokeColor\x3d#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), +{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"office",prefix:"office",libs:Sidebar.prototype.office},{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3}, +{id:"archimate",libs:["archimate"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];var a=Sidebar.prototype.insertSearchHint;Sidebar.prototype.insertSearchHint=function(b,d,c,f,n,m,p,r){if(null!=r&&1==f){var s=null;if(0<=mxUtils.indexOf(r,"text"))s="Double click anywhere in the diagram to insert text.";else for(var q="line lines arrow arrows connect connection connections connector connectors curve curves link links".split(" "),t=0;tg?"":d.substring(g+1));this.createVertexTemplateEntry(d,parseInt(b[a].getAttribute("w")), +parseInt(b[a].getAttribute("h")),"",c.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}}))};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,a,d){var c=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var f=document.createElement("button");f.style.marginLeft="4px";mxUtils.write(f, +"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(m){if("BUTTON"==mxEvent.getSource(m).nodeName){var p=b.cloneNode(!0);p.style.backgroundImage="";p.style.textDecoration="none";p.style.fontWeight="bold";p.style.fontSize="14px";p.style.color="rgb(80, 80, 80)";p.style.width="456px";p.style.backgroundColor="#ffffff";p.style.paddingLeft="6px";m=p.getElementsByTagName("button")[0];m.parentNode.removeChild(m);m=a.cloneNode(!0);m.style.backgroundColor="#ffffff";m.style.borderColor="transparent"; +m.style.width="456px";p='\x3c!DOCTYPE html\x3e\x3chtml\x3e\x3chead\x3e\x3clink rel\x3d"stylesheet" type\x3d"text/css" href\x3d"https://www.draw.io/styles/grapheditor.css"\x3e\x3c/head\x3e\x3cbody style\x3d"background:#ffffff;font-family:Helvetica,Arial;"\x3e'+p.outerHTML+m.outerHTML+"\x3c/body\x3e\x3c/html\x3e";m.style.position="absolute";window.document.body.appendChild(m);var r=m.clientHeight+18;m.parentNode.removeChild(m);(new mxXmlRequest(EXPORT_URL,"w\x3d456\x26h\x3d"+r+"\x26html\x3d"+encodeURIComponent(this.editorUi.editor.graph.compress(p)))).simulate(document, +"_blank")}else{if("none"==a.style.display){if(c)b.appendChild(f);else if(c=!0,null!=d){null!=f.parentNode&&f.parentNode.removeChild(f);b.style.cursor="wait";var s=b.innerHTML;b.innerHTML=mxResources.get("loading")+"...";window.setTimeout(function(){d(a);b.style.cursor="";b.innerHTML=s;b.appendChild(f)},0)}else b.appendChild(f);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=f.parentNode&& +f.parentNode.removeChild(f);mxEvent.consume(m)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape\x3d"==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6,a)}return null};var c=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,d){var f=c.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&f.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&f.push(this.shapetags[a])); +return f};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,d=this.signs,c=this.rack,f=this.pids,m=this.cisco,p=this.sysml,r=this.eip,s=this.gmdl;"1"==urlParams.createindex&&(mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette(); +this.addBpmnPalette(a,!1);this.addAWSPalette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html\x3d1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;"+mxConstants.STYLE_STROKEWIDTH+"\x3d2;strokeColor\x3d#000000;"); +this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), "Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",b+"/lib/clip_art/finance/", "_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",b+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "), "Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",b+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "), @@ -5829,10 +5830,10 @@ new mxCell("",new mxGeometry(0,0,500,30),c+"misc.rrect;rSize\x3d0;strokeColor\x3 a.vertex=!0;b.insert(a);a=new mxCell("Text 3",new mxGeometry(310,5,115,20),c+"misc.rrect;rSize\x3d5;strokeColor\x3dnone;fontSize\x3d15;fontColor\x3d#999999;fillColor\x3d#ddeeff;align\x3dleft;spacingLeft\x3d5;");a.vertex=!0;b.insert(a);a=new mxCell("",new mxGeometry(495,15,0,0),c+"misc.anchor;");a.vertex=!0;b.insert(a);var d=new mxCell("",new mxGeometry(-20,-10,20,20),"shape\x3dellipse;fillColor\x3dnone;strokeColor\x3d#008cff;resizable\x3d0;html\x3d1;");d.vertex=!0;a.insert(d);a=new mxCell("",new mxGeometry(465, 15,0,0),c+"misc.anchor;");a.vertex=!0;b.insert(a);d=new mxCell("",new mxGeometry(-20,5,20,10),"shape\x3dline;strokeColor\x3d#008cff;resizable\x3d0;");d.vertex=!0;a.insert(d);return e.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Status Bar")}),this.createVertexTemplateEntry(f+"misc.pin;fillColor2\x3d#00dd00;fillColor3\x3d#004400;strokeColor\x3d#006600;",10,25,"","Pin",null,null,this.getTagsForStencil("mxgraph.mockup.misc","pin","mockup ").join(" ")),this.createVertexTemplateEntry(f+ "misc.pin;fillColor2\x3d#dd0000;fillColor3\x3d#440000;strokeColor\x3d#660000;",10,25,"","Pin",null,null,this.getTagsForStencil("mxgraph.mockup.misc","pin","mockup ").join(" ")),this.createVertexTemplateEntry(f+"misc.pin;fillColor2\x3d#ccccff;fillColor3\x3d#0000ff;strokeColor\x3d#000066;",10,25,"","Pin",null,null,this.getTagsForStencil("mxgraph.mockup.misc","pin","mockup ").join(" ")),this.createVertexTemplateEntry(f+"misc.pin;fillColor2\x3d#ffff00;fillColor3\x3d#888800;strokeColor\x3d#999900;",10, -25,"","Pin",null,null,this.getTagsForStencil("mxgraph.mockup.misc","pin","mockup ").join(" ")),this.createVertexTemplateEntry(f+"misc.pin;fillColor2\x3d#ffa500;fillColor3\x3d#885000;strokeColor\x3d#997000;",10,25,"","Pin",null,null,this.getTagsForStencil("mxgraph.mockup.misc","pin","mockup ").join(" "))];this.addPalette("mockupMisc","Mockup Misc",!1,mxUtils.bind(this,function(b){for(var a=0;al||Math.abs(k)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e, -f),this.isSpaceEvent(b)?(e=this.x+this.width,f=this.y+this.height,g=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/g)*g,this.height=this.graph.snap(this.height/g)*g,this.x=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0, -0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var E=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?x:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return E.apply(this,arguments)};var C=mxGraphHandler.prototype.getBoundingBox; -mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&(null!=d&&d.relative)&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return C.apply(this,arguments)};var F=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b= -this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):F.apply(this,arguments)};var G=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell), -e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&G.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()g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)), +this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var A=mxRubberband.prototype.reset; +mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);A.apply(this,arguments)};var z=(new Date).getTime(),v=0,D=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){D.apply(this,arguments);c!=this.currentTerminalState?(z=(new Date).getTime(),v=0):v=(new Date).getTime()-z;this.currentTerminalState=c};var y=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent= +function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length- +1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR, +mxConstants.HANDLE_STROKECOLOR)};var E=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?x:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return E.apply(this,arguments)};var C=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&& +(null!=d&&d.relative)&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return C.apply(this,arguments)};var F=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox? +(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):F.apply(this,arguments)};var G=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&& +G.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()l||Math.abs(k)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c, -f),this.isSpaceEvent(a)?(c=this.x+this.width,f=this.y+this.height,g=this.graph.view.scale,mxEvent.isAltDown(a.getEvent())||(this.width=this.graph.snap(this.width/g)*g,this.height=this.graph.snap(this.height/g)*g,this.x=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,e,d):null,d=null!=(null!=c?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),c):null)?this.fixedHandleImage:null!=c&&null!=e?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-=1);return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var B=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?u:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return B.apply(this,arguments)};var E=mxGraphHandler.prototype.getBoundingBox; -mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var a=this.graph.getModel(),d=a.getParent(b[0]),e=this.graph.getCellGeometry(b[0]);if(a.isEdge(d)&&null!=e&&e.relative&&(a=this.graph.view.getState(b[0]),null!=a&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox))return mxRectangle.fromRectangle(a.text.boundingBox)}return E.apply(this,arguments)};var G=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var a= -this.graph.getModel(),d=a.getParent(b.cell),e=this.graph.getCellGeometry(b.cell);return a.isEdge(d)&&null!=e&&e.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(a=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(a.x),Math.round(a.y),Math.round(a.width),Math.round(a.height))):G.apply(this,arguments)};var F=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,a){var d=this.graph.getModel(),e=d.getParent(this.state.cell), -c=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(a)==mxEvent.ROTATION_HANDLE||!d.isEdge(e)||null==c||!c.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&F.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e,d),this.isSpaceEvent(a)?(e=this.x+this.width,d=this.y+this.height,c=this.graph.view.scale,mxEvent.isAltDown(a.getEvent())||(this.width=this.graph.snap(this.width/c)*c,this.height=this.graph.snap(this.height/c)*c,this.graph.isGridEnabled()||(this.width=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)),a.consume()}};var z=mxRubberband.prototype.reset; +mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);z.apply(this,arguments)};var y=(new Date).getTime(),x=0,C=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,a,d,e){C.apply(this,arguments);d!=this.currentTerminalState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y;this.currentTerminalState=d};var A=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent= +function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length- +1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,e,d):null,d=null!=(null!=c?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),c):null)?this.fixedHandleImage:null!=c&&null!=e?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-=1);return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR, +mxConstants.HANDLE_STROKECOLOR)};var B=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?u:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return B.apply(this,arguments)};var E=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var a=this.graph.getModel(),d=a.getParent(b[0]),e=this.graph.getCellGeometry(b[0]);if(a.isEdge(d)&& +null!=e&&e.relative&&(a=this.graph.view.getState(b[0]),null!=a&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox))return mxRectangle.fromRectangle(a.text.boundingBox)}return E.apply(this,arguments)};var G=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var a=this.graph.getModel(),d=a.getParent(b.cell),e=this.graph.getCellGeometry(b.cell);return a.isEdge(d)&&null!=e&&e.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox? +(a=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(a.x),Math.round(a.y),Math.round(a.width),Math.round(a.height))):G.apply(this,arguments)};var F=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,a){var d=this.graph.getModel(),e=d.getParent(this.state.cell),c=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(a)==mxEvent.ROTATION_HANDLE||!d.isEdge(e)||null==c||!c.relative||null==this.state||2<=this.state.width||2<=this.state.height)&& +F.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()g?"":d.substring(g+1));this.createVertexTemplateEntry(d,parseInt(b[a].getAttribute("w")),parseInt(b[a].getAttribute("h")),"",e.replace(/_/g," "),null,null,this.filterTags(c.join(" ")))}}}}}}))}; -"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,a,d){var c=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var f=document.createElement("button");f.style.marginLeft="4px";mxUtils.write(f,"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(n){if("BUTTON"==mxEvent.getSource(n).nodeName){var p= -b.cloneNode(!0);p.style.backgroundImage="";p.style.textDecoration="none";p.style.fontWeight="bold";p.style.fontSize="14px";p.style.color="rgb(80, 80, 80)";p.style.width="456px";p.style.backgroundColor="#ffffff";p.style.paddingLeft="6px";n=p.getElementsByTagName("button")[0];n.parentNode.removeChild(n);n=a.cloneNode(!0);n.style.backgroundColor="#ffffff";n.style.borderColor="transparent";n.style.width="456px";p='\x3c!DOCTYPE html\x3e\x3chtml\x3e\x3chead\x3e\x3clink rel\x3d"stylesheet" type\x3d"text/css" href\x3d"https://www.draw.io/styles/grapheditor.css"\x3e\x3c/head\x3e\x3cbody style\x3d"background:#ffffff;font-family:Helvetica,Arial;"\x3e'+ -p.outerHTML+n.outerHTML+"\x3c/body\x3e\x3c/html\x3e";n.style.position="absolute";window.document.body.appendChild(n);var r=n.clientHeight+18;n.parentNode.removeChild(n);(new mxXmlRequest(EXPORT_URL,"w\x3d456\x26h\x3d"+r+"\x26html\x3d"+encodeURIComponent(this.editorUi.editor.compress(p)))).simulate(document,"_blank")}else{if("none"==a.style.display){if(c)b.appendChild(f);else if(c=!0,null!=d){null!=f.parentNode&&f.parentNode.removeChild(f);b.style.cursor="wait";var s=b.innerHTML;b.innerHTML=mxResources.get("loading")+ -"...";window.setTimeout(function(){d(a);b.style.cursor="";b.innerHTML=s;b.appendChild(f)},0)}else b.appendChild(f);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=f.parentNode&&f.parentNode.removeChild(f);mxEvent.consume(n)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape\x3d"==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6, -a)}return null};var c=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,d){var f=c.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&f.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&f.push(this.shapetags[a]));return f};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,d=this.signs,c=this.rack,f=this.pids,n=this.cisco,p=this.sysml,r=this.eip,s=this.gmdl;"1"==urlParams.createindex&& -(mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(a,!1);this.addAWSPalette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette(); -this.addElectricalPalette();this.addOfficePalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html\x3d1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;"+mxConstants.STYLE_STROKEWIDTH+"\x3d2;strokeColor\x3d#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), +{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"office",prefix:"office",libs:Sidebar.prototype.office},{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3}, +{id:"archimate",libs:["archimate"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];var a=Sidebar.prototype.insertSearchHint;Sidebar.prototype.insertSearchHint=function(b,d,c,f,m,n,p,r){if(null!=r&&1==f){var s=null;if(0<=mxUtils.indexOf(r,"text"))s="Double click anywhere in the diagram to insert text.";else for(var q="line lines arrow arrows connect connection connections connector connectors curve curves link links".split(" "),t=0;tg?"":d.substring(g+1));this.createVertexTemplateEntry(d,parseInt(b[a].getAttribute("w")), +parseInt(b[a].getAttribute("h")),"",e.replace(/_/g," "),null,null,this.filterTags(c.join(" ")))}}}}}}))};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,a,d){var c=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var f=document.createElement("button");f.style.marginLeft="4px";mxUtils.write(f, +"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(n){if("BUTTON"==mxEvent.getSource(n).nodeName){var p=b.cloneNode(!0);p.style.backgroundImage="";p.style.textDecoration="none";p.style.fontWeight="bold";p.style.fontSize="14px";p.style.color="rgb(80, 80, 80)";p.style.width="456px";p.style.backgroundColor="#ffffff";p.style.paddingLeft="6px";n=p.getElementsByTagName("button")[0];n.parentNode.removeChild(n);n=a.cloneNode(!0);n.style.backgroundColor="#ffffff";n.style.borderColor="transparent"; +n.style.width="456px";p='\x3c!DOCTYPE html\x3e\x3chtml\x3e\x3chead\x3e\x3clink rel\x3d"stylesheet" type\x3d"text/css" href\x3d"https://www.draw.io/styles/grapheditor.css"\x3e\x3c/head\x3e\x3cbody style\x3d"background:#ffffff;font-family:Helvetica,Arial;"\x3e'+p.outerHTML+n.outerHTML+"\x3c/body\x3e\x3c/html\x3e";n.style.position="absolute";window.document.body.appendChild(n);var r=n.clientHeight+18;n.parentNode.removeChild(n);(new mxXmlRequest(EXPORT_URL,"w\x3d456\x26h\x3d"+r+"\x26html\x3d"+encodeURIComponent(this.editorUi.editor.graph.compress(p)))).simulate(document, +"_blank")}else{if("none"==a.style.display){if(c)b.appendChild(f);else if(c=!0,null!=d){null!=f.parentNode&&f.parentNode.removeChild(f);b.style.cursor="wait";var s=b.innerHTML;b.innerHTML=mxResources.get("loading")+"...";window.setTimeout(function(){d(a);b.style.cursor="";b.innerHTML=s;b.appendChild(f)},0)}else b.appendChild(f);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=f.parentNode&& +f.parentNode.removeChild(f);mxEvent.consume(n)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape\x3d"==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6,a)}return null};var c=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,d){var f=c.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&f.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&f.push(this.shapetags[a])); +return f};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,d=this.signs,c=this.rack,f=this.pids,n=this.cisco,p=this.sysml,r=this.eip,s=this.gmdl;"1"==urlParams.createindex&&(mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette(); +this.addBpmnPalette(a,!1);this.addAWSPalette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html\x3d1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;"+mxConstants.STYLE_STROKEWIDTH+"\x3d2;strokeColor\x3d#000000;"); +this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), "Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",b+"/lib/clip_art/finance/", "_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",b+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "), "Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",b+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "), @@ -6878,11 +6879,145 @@ new mxGeometry(40,0,280,80),"shape\x3dnote;size\x3d15;spacingLeft\x3d5;html\x3d1 '\x3cp style\x3d"margin:0px;margin-top:4px;text-align:center;"\x3e\x3cb\x3eNodeName\x3c/b\x3e\x3chr/\x3e\x3c/p\x3e\x3cp style\x3d"margin:0px;margin-left:10px;text-align:left;"\x3e\x26lt;\x26lt;stereotypeName\x26gt;\x26gt;{PropertyName\x3dValueString}ElementName\x3cbr/\x3e\x26lt;\x26lt;stereotypeName\x26gt;\x26gt;{PropertyName\x3dValueString};\x3cbr/\x3eBooleanPropertyName\x3cbr/\x3eElementName\x3c/p\x3e',"Stereotype (Compartment)",null,null,this.getTagsForStencil("","","sysml stereotype compartment").join(" ")), this.addEntry("sysml stereotype edge",function(){var a=new mxCell("Element\nName",new mxGeometry(0,0,120,60),"shape\x3drect;fontStyle\x3d1;html\x3d1;whiteSpace\x3dwrap;align\x3dcenter;");a.vertex=!0;var b=new mxCell("Element\nName",new mxGeometry(0,120,120,60),"shape\x3drect;fontStyle\x3d1;html\x3d1;whiteSpace\x3dwrap;align\x3dcenter;");b.vertex=!0;var e=new mxCell("\x26lt;\x26lt;steretyoeName\x26gt;\x26gt;\n{PropertyName\x3dValueString;\nBooleanPropertyName}PathName",new mxGeometry(0,0,0,0),"endArrow\x3dnone;html\x3d1;edgeStyle\x3dnone;labelBackgroundColor\x3dnone;align\x3dleft;fontStyle\x3d1;fontSize\x3d10;"); e.geometry.relative=!0;e.edge=!0;a.insertEdge(e,!1);b.insertEdge(e,!0);return c.createVertexTemplateFromCells([a,b,e],200,180,"Stereotype (Edge)")}),this.createVertexTemplateEntry("shape\x3drect;html\x3d1;overflow\x3dfill;whiteSpace\x3dwrap;align\x3dcenter;",300,120,'\x3cp style\x3d"margin:0px;margin-top:4px;text-align:center;"\x3e\x3cb\x3e\x26lt;\x26lt;stereotypeName\x26gt;\x26gt;\x3c/br\x3eNodeName\x3c/b\x3e\x3chr/\x3e\x3c/p\x3e\x3cp style\x3d"margin:0px;margin-left:10px;text-align:left;"\x3e\x26lt;\x26lt;stereotypeName\x26gt;\x26gt;\x3cbr/\x3ePropertyName\x3dValueString\x3cbr/\x3eMultiPropertyName\x3dValueString, ValueString\x3cbr/\x3eBooleanPropertyName\x3cbr/\x3e\x3c/p\x3e', -"Stereotype (Compartment)",null,null,this.getTagsForStencil("","","sysml stereotype compartment").join(" "))];this.addPalette("sysmlStereotypes","SysML / Stereotypes",a||!1,mxUtils.bind(this,function(a){for(var b=0;b -1 && index == path.length - 4; + var encoding = isPng ? 'base64' : 'utf-8' + + fs.readFile(path, encoding, mxUtils.bind(this, function (e, data) + { + if (e) + { + this.handleError(e); + } + else + { + if (isPng) + { + // Detecting png by extension. Would need https://github.com/mscdex/mmmagic + // to do it by inspection + data = this.extractGraphModelFromPng(data, true); + } + + var fileEntry = new Object(); + fileEntry.path = path; + fileEntry.name = path.replace(/^.*[\\\/]/, ''); + fileEntry.type = encoding; + fn(fileEntry, data); + } + })); + } + }; + + LocalFile.prototype.isAutosave = function() + { + return this.ui.editor.autosave; + }; + + LocalFile.prototype.isAutosaveOptional = function() + { + return true; + }; + + LocalLibrary.prototype.isAutosave = function() + { + return true; + }; + + LocalFile.prototype.getTitle = function() + { + return (this.fileObject != null) ? this.fileObject.name : null; + }; + + LocalFile.prototype.isRenamable = function() + { + return false; + }; + + // Restores default implementation of open with autosave + LocalFile.prototype.open = DrawioFile.prototype.open; + + LocalFile.prototype.save = function(revision, success, error) + { + DrawioFile.prototype.save.apply(this, arguments); + + this.saveFile(revision, success, error); + }; + + LocalLibrary.prototype.save = function(revision, success, error) + { + this.saveFile(revision, success, error); + }; + + LocalFile.prototype.saveFile = function(revision, success, error) + { + var fn = mxUtils.bind(this, function() + { + var doSave = mxUtils.bind(this, function(data) + { + 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(); + this.setModified(false); + var fs = require('fs'); + + fs.writeFile(this.fileObject.path, data, this.fileObject.encoding, mxUtils.bind(this, function (e) + { + if (e) + { + this.savingFile = false; + this.isModified = prevModified; + this.setModified(modified || this.isModified()); + + if (error != null) + { + error(); + } + } + else + { + this.savingFile = false; + this.isModified = prevModified; + + this.contentChanged(); + + if (success != null) + { + success(); + } + } + })); + } + else + { + // TODO, already saving. Need a better error + error(); + } + }); + + if (!/(\.png)$/i.test(this.fileObject.name)) + { + doSave(this.getData()); + } + else + { + this.ui.exportToCanvas(mxUtils.bind(this, function(canvas) + { + try + { + var data = canvas.toDataURL('image/png'); + data = this.ui.writeGraphModelToPng(data, 'zTXt', 'mxGraphModel', + atob(this.ui.editor.graph.compress(mxUtils.getXml(this.ui.editor.getGraphXml())))); + doSave(data, 'base64'); + } + catch (e) + { + if (error != null) + { + error(e); + } + } + }), null, null, null, mxUtils.bind(this, function(e) + { + if (error != null) + { + error(e); + } + })); + } + }); + + if (this.fileObject == null) + { + const electron = require('electron'); + var remote = electron.remote; + var dialog = remote.dialog; + + var path = dialog.showSaveDialog(); + +// chrome.fileSystem.chooseEntry({type: 'saveFile', +// accepts: [(this.constructor == LocalFile) ? {description: 'Draw.io Diagram (.xml)', +// extensions: ['xml']} : {description: 'Draw.io Library (.xml)', +// extensions: ['xml']}]}, mxUtils.bind(this, function(xmlFile) + + if (path != null) + { + this.fileObject = new Object(); + this.fileObject.path = path; + this.fileObject.name = path.replace(/^.*[\\\/]/, ''); + this.fileObject.type = 'utf-8'; + fn(); + } + } + else + { + fn(); + } + }; + + LocalFile.prototype.saveAs = function(title, success, error) + { + const electron = require('electron'); + var remote = electron.remote; + var dialog = remote.dialog; + + var path = dialog.showSaveDialog(); + +// chrome.fileSystem.chooseEntry({type: 'saveFile', +// accepts: [(this.constructor == LocalFile) ? {description: 'Draw.io Diagram (.xml)', +// extensions: ['xml']} : {description: 'Draw.io Library (.xml)', +// extensions: ['xml']}]}, mxUtils.bind(this, function(f) + + if (path != null) + { + this.fileObject = new Object(); + this.fileObject.path = path; + this.fileObject.name = path.replace(/^.*[\\\/]/, ''); + this.fileObject.type = 'utf-8'; + this.save(false, success, error); + } + }; + + App.prototype.saveFile = function(forceDialog) + { + var file = this.getCurrentFile(); + + if (file != null) + { + if (!forceDialog && file.getTitle() != null) + { + file.save(true, mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + this.editor.setStatus(mxResources.get('allChangesSaved')); + }), mxUtils.bind(this, function(resp) + { + this.editor.setStatus(''); + this.handleError(resp, (resp != null) ? mxResources.get('errorSavingFile') : null); + })); + } + else + { + file.saveAs(null, mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + this.editor.setStatus(mxResources.get('allChangesSaved')); + }), mxUtils.bind(this, function(resp) + { + this.editor.setStatus(''); + this.handleError(resp, (resp != null) ? mxResources.get('errorSavingFile') : null); + })); + } + } + }; + + /** + * Translates this point by the given vector. + * + * @param {number} dx X-coordinate of the translation. + * @param {number} dy Y-coordinate of the translation. + */ + App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, fn) + { + mode = (mode != null) ? mode : this.mode; + noSpin = (noSpin != null) ? noSpin : false; + noReload = (noReload != null) ? noReload : false; + var xml = this.createLibraryDataFromImages(images); + + var error = mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + + if (fn != null) + { + fn(); + } + + // Null means cancel by user and is ignored + if (resp != null) + { + this.handleError(resp, mxResources.get('errorSavingFile')); + } + }); + + // Handles special case for local libraries + if (file == null) + { + file = new LocalLibrary(this, xml, name); + } + + if (noSpin || this.spinner.spin(document.body, mxResources.get('saving'))) + { + file.setData(xml); + + var doSave = mxUtils.bind(this, function() + { + file.save(true, mxUtils.bind(this, function(resp) + { + this.spinner.stop(); + this.hideDialog(true); + + if (!noReload) + { + this.libraryLoaded(file, images) + } + + if (fn != null) + { + fn(); + } + }), error); + }); + + if (name != file.getTitle()) + { + var oldHash = file.getHash(); + + file.rename(name, mxUtils.bind(this, function(resp) + { + // Change hash in stored settings + if (file.constructor != LocalLibrary && oldHash != file.getHash()) + { + mxSettings.removeCustomLibrary(oldHash); + mxSettings.addCustomLibrary(file.getHash()); + } + + // Workaround for library files changing hash so + // the old library cannot be removed from the + // sidebar using the updated file in libraryLoaded + this.removeLibrarySidebar(oldHash); + + doSave(); + }), error) + } + else + { + doSave(); + } + } + }; + + App.prototype.doSaveLocalFile = function(data, filename, mimeType, base64Encoded) + { + chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: filename, acceptsAllTypes: true}, mxUtils.bind(this, function(fileEntry) + { + if (!chrome.runtime.lastError) + { + fileEntry.createWriter(mxUtils.bind(this, function(writer) + { + writer.onwriteend = mxUtils.bind(this, function() + { + writer.onwriteend = null; + writer.write((base64Encoded) ? this.base64ToBlob(data, mimeType) : new Blob([data], {type: mimeType})); + }); + + writer.onerror = mxUtils.bind(this, function(e) + { + this.handleError(e); + }); + + writer.truncate(0); + })); + } + else if (chrome.runtime.lastError.message != 'User cancelled') + { + this.handleError(chrome.runtime.lastError); + } + })); + }; +})(); \ No newline at end of file diff --git a/war/js/diagramly/sidebar/Sidebar-Veeam.js b/war/js/diagramly/sidebar/Sidebar-Veeam.js new file mode 100644 index 00000000..b19fe5e3 --- /dev/null +++ b/war/js/diagramly/sidebar/Sidebar-Veeam.js @@ -0,0 +1,486 @@ +(function() +{ + // Adds mockup shapes + Sidebar.prototype.addVeeamPalette = function() + { + this.addVeeam2DPalette(); + this.addVeeam3DPalette(); + }; + + Sidebar.prototype.addVeeam2DPalette = function() + { + var sn = 'shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.veeam.2d.'; + var s = 'shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#4495D1;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.veeam.2d.'; + var s2 = 'shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#EF8F21;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.veeam.2d.'; + + // Space savers + var sb = this; + var gn = 'mxgraph.veeam.2d'; + var dt = 'veeam 2d two dimension vmware virtual machine '; + + var w = 2.0; + var h = 2.0; + + var fns = + [ + this.createVertexTemplateEntry(s + '1ftvm;', + w * 35, h * 35, '', '1FTVM', null, null, this.getTagsForStencil(gn, '1ftvm', dt).join(' ')), + this.createVertexTemplateEntry(s + '1ftvm_error;', + w * 35, h * 39, '', '1FTVM Error', null, null, this.getTagsForStencil(gn, '1ftvm error', dt).join(' ')), + this.createVertexTemplateEntry(s + '1ftvm_running;', + w * 35, h * 39, '', '1FTVM Running', null, null, this.getTagsForStencil(gn, '1frvm running', dt).join(' ')), + this.createVertexTemplateEntry(s + '1ftvm_unavailable;', + w * 35, h * 39, '', '1FTVM Unavailable', null, null, this.getTagsForStencil(gn, '1ftvm unavailable', dt).join(' ')), + this.createVertexTemplateEntry(s + '1ftvm_warning;', + w * 35, h * 39, '', '1FTVM Warning', null, null, this.getTagsForStencil(gn, '1ftvm warning', dt).join(' ')), + this.createVertexTemplateEntry(s2 + '1_click_failover_orchestration;', + w * 22, h * 22, '', '1 Click Failover Orchestration', null, null, this.getTagsForStencil(gn, 'one click failover orchestration', dt).join(' ')), + this.createVertexTemplateEntry(s + '2ftvm;', + w * 35, h * 35, '', '2FTVM', null, null, this.getTagsForStencil(gn, '2ftvm', dt).join(' ')), + this.createVertexTemplateEntry(s + '2ftvm_error;', + w * 35, h * 39, '', '2FTVM Error', null, null, this.getTagsForStencil(gn, '2ftvm error', dt).join(' ')), + this.createVertexTemplateEntry(s + '2ftvm_running;', + w * 35, h * 39, '', '2FTVM Running', null, null, this.getTagsForStencil(gn, '2ftvm running', dt).join(' ')), + this.createVertexTemplateEntry(s + '2ftvm_unavailable;', + w * 35, h * 39, '', '2FTVM Unavailable', null, null, this.getTagsForStencil(gn, '2ftvm unavailable', dt).join(' ')), + this.createVertexTemplateEntry(s + '2ftvm_warning;', + w * 35, h * 39, '', '2FTVM Warning', null, null, this.getTagsForStencil(gn, '2ftvm warning', dt).join(' ')), + this.createVertexTemplateEntry(s + 'agent;', + w * 19, h * 19, '', 'Agent', null, null, this.getTagsForStencil(gn, 'agent', dt).join(' ')), + this.createVertexTemplateEntry(s + 'alarm;', + w * 31, h * 23, '', 'Alarm', null, null, this.getTagsForStencil(gn, 'alarm', dt).join(' ')), + this.createVertexTemplateEntry(s + 'alert;', + w * 15, h * 15, '', 'Alert', null, null, this.getTagsForStencil(gn, 'alert', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'assisted_failover_and_failback;', + w * 23, h * 23, '', 'Assisted Failover and Failback', null, null, this.getTagsForStencil(gn, 'assisted failover and failback', dt).join(' ')), + this.createVertexTemplateEntry(s + 'backup_browser;', + w * 23, h * 23, '', 'Backup Browser', null, null, this.getTagsForStencil(gn, 'backup browser', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'backup_from_storage_snapshots;', + w * 23, h * 23, '', 'Backup from Storage Snapshots', null, null, this.getTagsForStencil(gn, 'backup from storage snapshots', dt).join(' ')), + this.createVertexTemplateEntry(s + 'backup_repository;', + w * 26, h * 24, '', 'Backup Repository', null, null, this.getTagsForStencil(gn, 'backup repository', dt).join(' ')), + this.createVertexTemplateEntry(s + 'backup_repository_2;', + w * 29, h * 25, '', 'Backup Repository', null, null, this.getTagsForStencil(gn, 'backup repository', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'built_in_wan_acceleration;', + w * 23, h * 23, '', 'Built-in WAN Acceleration', null, null, this.getTagsForStencil(gn, 'built in wan acceleration wireless area network', dt).join(' ')), + this.createVertexTemplateEntry(s + 'cd;', + w * 23, h * 23, '', 'CD', null, null, this.getTagsForStencil(gn, 'cd compact disc', dt).join(' ')), + this.createVertexTemplateEntry(s + 'cloud;', + w * 33, h * 23, '', 'Cloud', null, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')), + this.createVertexTemplateEntry(s + 'cloud_gateway;', + w * 23, h * 23, '', 'Cloud Gateway', null, null, this.getTagsForStencil(gn, 'cloud gateway', dt).join(' ')), + this.createVertexTemplateEntry(s + 'database;', + w * 29, h * 25, '', 'Database', null, null, this.getTagsForStencil(gn, 'database db', dt).join(' ')), + this.createVertexTemplateEntry(s + 'datastore;', + w * 22, h * 22, '', 'Datastore', null, null, this.getTagsForStencil(gn, 'datastore', dt).join(' ')), + this.createVertexTemplateEntry(s + 'datastore_snapshot;', + w * 23, h * 6, '', 'Datastore Snapshot', null, null, this.getTagsForStencil(gn, 'datastore snapshot', dt).join(' ')), + this.createVertexTemplateEntry(s + 'datastore_volume;', + w * 23, h * 6, '', 'Datastore Volume', null, null, this.getTagsForStencil(gn, 'datastore volume', dt).join(' ')), + this.createVertexTemplateEntry(s + 'data_mover;', + w * 19, h * 19, '', 'Data Mover', null, null, this.getTagsForStencil(gn, 'data mover', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'disaster_recovery;', + w * 23, h * 23, '', 'Disaster Recovery', null, null, this.getTagsForStencil(gn, 'disaster recovery', dt).join(' ')), + this.createVertexTemplateEntry(s + 'download;', + w * 23, h * 23, '', 'Download', null, null, this.getTagsForStencil(gn, 'download', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'emc_data_domain_boost;', + w * 23, h * 23, '', 'EMC Data Domain Boost', null, null, this.getTagsForStencil(gn, 'emc data domain boost', dt).join(' ')), + this.createVertexTemplateEntry(s + 'encryption_object;', + w * 23, h * 23, '', 'Encryption Object', null, null, this.getTagsForStencil(gn, 'encryption object', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'end_to_end_encryption;', + w * 23, h * 23, '', 'End to end Encryption', null, null, this.getTagsForStencil(gn, 'end to end encryption', dt).join(' ')), + this.createVertexTemplateEntry(s + 'esx_esxi;', + w * 15, h * 23, '', 'ESX/ESXi', null, null, this.getTagsForStencil(gn, 'esx esxi', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'exagrid;', + w * 23, h * 23, '', 'ExaGrid', null, null, this.getTagsForStencil(gn, 'exagrid', dt).join(' ')), + this.createVertexTemplateEntry(s + 'failover_protective_snapshot;', + w * 23, h * 23, '', 'Failover Protective Snapshot', null, null, this.getTagsForStencil(gn, 'failover protective snapshot', dt).join(' ')), + this.createVertexTemplateEntry(s + 'failover_protective_snapshot_locked;', + w * 27, h * 25, '', 'Failover Protective Snapshot Locked', null, null, this.getTagsForStencil(gn, 'failover protective snapshot locked', dt).join(' ')), + this.createVertexTemplateEntry(s + 'failover_protective_snapshot_running;', + w * 28, h * 25, '', 'Failover Protective Snapshot Running', null, null, this.getTagsForStencil(gn, 'failover protective snapshot running', dt).join(' ')), + this.createVertexTemplateEntry(s + 'file;', + w * 17, h * 23, '', 'File', null, null, this.getTagsForStencil(gn, 'file', dt).join(' ')), + this.createVertexTemplateEntry(s + 'file_system_browser;', + w * 23, h * 23, '', 'File System Browser', null, null, this.getTagsForStencil(gn, 'file system browser', dt).join(' ')), + this.createVertexTemplateEntry(s + 'folder;', + w * 24, h * 23, '', 'Folder', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'forward_incremental_backup_increment;fillColor=#999A98;', + w * 17, h * 12, '', 'Forward Incremental Backup - Increment (grey)', null, null, this.getTagsForStencil(gn, 'forward incremental backup increment', dt).join(' ')), + this.createVertexTemplateEntry(s + 'forward_incremental_backup_increment;', + w * 17, h * 12, '', 'Forward Incremental Backup - Increment (blue)', null, null, this.getTagsForStencil(gn, 'forward incremental backup increment', dt).join(' ')), + this.createVertexTemplateEntry(s + 'free_datastore;', + w * 23, h * 23, '', 'Free Datastore', null, null, this.getTagsForStencil(gn, 'free datastore', dt).join(' ')), + this.createVertexTemplateEntry(s + 'full_datastore;', + w * 23, h * 23, '', 'Full Datastore', null, null, this.getTagsForStencil(gn, 'full datastore', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'full_veeam_backup;fillColor=#999A98;', + w * 13, h * 21, '', 'Full Veeam Backup (grey)', null, null, this.getTagsForStencil(gn, 'full veeam backup', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'full_veeam_backup;fillColor=#24B14B;', + w * 13, h * 21, '', 'Full Veeam Backup (green)', null, null, this.getTagsForStencil(gn, 'full veeam backup', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'full_veeam_backup;fillColor=#EF8F21;', + w * 13, h * 21, '', 'Full Veeam Backup (orange)', null, null, this.getTagsForStencil(gn, 'full veeam backup', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'full_veeam_backup;fillColor=#FBB715;', + w * 13, h * 21, '', 'Full Veeam Backup (yellow)', null, null, this.getTagsForStencil(gn, 'full veeam backup', dt).join(' ')), + this.createVertexTemplateEntry(s + 'group;', + w * 20, h * 23, '', 'Group', null, null, this.getTagsForStencil(gn, 'group', dt).join(' ')), + this.createVertexTemplateEntry(s + 'hard_drive;', + w * 19, h * 23, '', 'Hard Drive', null, null, this.getTagsForStencil(gn, 'hard drive', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'hp_storeonce;', + w * 23, h * 23, '', 'HP StoreOnce', null, null, this.getTagsForStencil(gn, 'hp storeonce', dt).join(' ')), + this.createVertexTemplateEntry(s + 'hyper_v_host;', + w * 62, h * 60, '', 'Hyper-V Host', null, null, this.getTagsForStencil(gn, 'hyper host', dt).join(' ')), + this.createVertexTemplateEntry(s + 'hyper_v_vmware_host;', + w * 62, h * 60, '', 'VMware/Hyper-V Host', null, null, this.getTagsForStencil(gn, 'hyper vmware host', dt).join(' ')), + this.createVertexTemplateEntry(s + 'letter;', + w * 23, h * 18, '', 'Letter', null, null, this.getTagsForStencil(gn, 'letter', dt).join(' ')), + this.createVertexTemplateEntry(s + 'license;', + w * 23, h * 23, '', 'License', null, null, this.getTagsForStencil(gn, 'license', dt).join(' ')), + this.createVertexTemplateEntry(s + 'lost_space;', + w * 23, h * 23, '', 'Lost Space', null, null, this.getTagsForStencil(gn, 'lost space', dt).join(' ')), + this.createVertexTemplateEntry(s + 'lun;', + w * 29, h * 11, '', 'LUN', null, null, this.getTagsForStencil(gn, 'lun', dt).join(' ')), + this.createVertexTemplateEntry(s + 'medium_datastore;', + w * 23, h * 23, '', 'Medium Datastore', null, null, this.getTagsForStencil(gn, 'medium datastore', dt).join(' ')), + this.createVertexTemplateEntry(s + 'monitoring_console;', + w * 23, h * 23, '', 'Monitoring Console', null, null, this.getTagsForStencil(gn, 'monitoring console', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'native_tape_support;', + w * 23, h * 23, '', 'Native Tape Support', null, null, this.getTagsForStencil(gn, 'native tape support', dt).join(' ')), + this.createVertexTemplateEntry(s + 'network_card;', + w * 23, h * 16, '', 'Network Card', null, null, this.getTagsForStencil(gn, 'network card', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'on_demand_sandbox;', + w * 23, h * 23, '', 'On Demand Sandbox', null, null, this.getTagsForStencil(gn, 'on demand sandbox', dt).join(' ')), + this.createVertexTemplateEntry(s + 'physical_storage;', + w * 38, h * 13, '', 'Physical Storage', null, null, this.getTagsForStencil(gn, 'physical storage', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'powershell_extension;', + w * 23, h * 23, '', 'PowerShell Extension', null, null, this.getTagsForStencil(gn, 'powershell extension', dt).join(' ')), + this.createVertexTemplateEntry(s + 'private_key;', + w * 28, h * 26, '', 'Private Key', null, null, this.getTagsForStencil(gn, 'private key', dt).join(' ')), + this.createVertexTemplateEntry(s + 'privilege;', + w * 25, h * 24, '', 'Privilege', null, null, this.getTagsForStencil(gn, 'privilege', dt).join(' ')), + this.createVertexTemplateEntry(s + 'proxy;', + w * 23, h * 23, '', 'Proxy', null, null, this.getTagsForStencil(gn, 'proxy', dt).join(' ')), + this.createVertexTemplateEntry(s + 'proxy_appliance;', + w * 23, h * 23, '', 'Proxy Appliance', null, null, this.getTagsForStencil(gn, 'proxy appliance', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'quick_migration;', + w * 23, h * 23, '', 'Quick Migration', null, null, this.getTagsForStencil(gn, 'quick migration', dt).join(' ')), + this.createVertexTemplateEntry(s + 'remote_site;', + w * 21, h * 22, '', 'Remote Site', null, null, this.getTagsForStencil(gn, 'remote site', dt).join(' ')), + this.createVertexTemplateEntry(s + 'remote_storage;', + w * 23, h * 23, '', 'Remote Storage', null, null, this.getTagsForStencil(gn, 'remote storage', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'replication_from_a_backup;', + w * 23, h * 23, '', 'Replication from a Backup', null, null, this.getTagsForStencil(gn, 'replication from a backup', dt).join(' ')), + this.createVertexTemplateEntry(s + 'report;', + w * 17, h * 23, '', 'Report', null, null, this.getTagsForStencil(gn, 'report', dt).join(' ')), + this.createVertexTemplateEntry(s + 'resource_pool;', + w * 23, h * 23, '', 'Resource Pool', null, null, this.getTagsForStencil(gn, 'resource pool', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'restful_apis;', + w * 23, h * 23, '', 'RESTful APIs', null, null, this.getTagsForStencil(gn, 'restful apis api', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'restore_data_from_the_vm_backup;', + w * 23, h * 23, '', 'Restore Data from the VM Backup', null, null, this.getTagsForStencil(gn, 'restore data from the vm backup', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'reversed_incremental_backup_increment;fillColor=#999A98;', + w * 17, h * 12, '', 'Reversed Incremental Backup - Increment (grey)', null, null, this.getTagsForStencil(gn, 'reversed incremental backup increment', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'reversed_incremental_backup_increment;fillColor=#6E5CA7;', + w * 17, h * 12, '', 'Reversed Incremental Backup - Increment (purple)', null, null, this.getTagsForStencil(gn, 'reversed incremental backup increment', dt).join(' ')), + this.createVertexTemplateEntry(s + 'role;', + w * 17, h * 23, '', 'Role', null, null, this.getTagsForStencil(gn, 'role', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'scheduled_backups;', + w * 23, h * 23, '', 'Scheduled Backups', null, null, this.getTagsForStencil(gn, 'Scheduled Backups', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'search;', + w * 23, h * 23, '', 'Search', null, null, this.getTagsForStencil(gn, 'search', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'self_service_recovery;', + w * 23, h * 23, '', 'Self-Service Recovery', null, null, this.getTagsForStencil(gn, 'self service recovery', dt).join(' ')), + this.createVertexTemplateEntry(s + 'service;', + w * 23, h * 23, '', 'Service', null, null, this.getTagsForStencil(gn, 'service', dt).join(' ')), + this.createVertexTemplateEntry(s + 'service_console;', + w * 23, h * 23, '', 'Service Console', null, null, this.getTagsForStencil(gn, 'service console', dt).join(' ')), + this.createVertexTemplateEntry(s + 'service_vnic;', + w * 30, h * 27, '', 'Service vNIC', null, null, this.getTagsForStencil(gn, 'service vnic', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'sure_backup;', + w * 23, h * 23, '', 'SureBackup', null, null, this.getTagsForStencil(gn, 'sure backup', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'sure_replica;', + w * 23, h * 23, '', 'SureReplica', null, null, this.getTagsForStencil(gn, 'sure replica', dt).join(' ')), + this.createVertexTemplateEntry(s + 'switch;', + w * 37, h * 6, '', 'Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape;', + w * 30, h * 16, '', 'Tape', null, null, this.getTagsForStencil(gn, 'tape', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_checked;', + w * 35, h * 21, '', 'Tape Checked', null, null, this.getTagsForStencil(gn, 'tape checked', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_device;', + w * 26, h * 26, '', 'Tape Device', null, null, this.getTagsForStencil(gn, 'tape device', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_ejecting;', + w * 35, h * 21, '', 'Tape Ejecting', null, null, this.getTagsForStencil(gn, 'tape ejecting', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_library;', + w * 20, h * 23, '', 'Tape Library', null, null, this.getTagsForStencil(gn, 'tape library', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_licensed;', + w * 34, h * 19, '', 'Tape Licensed', null, null, this.getTagsForStencil(gn, 'tape licensed', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_recording;', + w * 35, h * 21, '', 'Tape Recording', null, null, this.getTagsForStencil(gn, 'tape recording', dt).join(' ')), + this.createVertexTemplateEntry(s + 'tape_server;', + w * 37, h * 36, '', 'Tape Server', null, null, this.getTagsForStencil(gn, 'tape server', dt).join(' ')), + this.createVertexTemplateEntry(s + 'transport_service;', + w * 19, h * 19, '', 'Transport Service', null, null, this.getTagsForStencil(gn, 'transport service', dt).join(' ')), + this.createVertexTemplateEntry(s + 'user;', + w * 13, h * 23, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'u_air;', + w * 23, h * 23, '', 'U-AIR', null, null, this.getTagsForStencil(gn, 'air', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vapp;', + w * 24, h * 24, '', 'vApp', null, null, this.getTagsForStencil(gn, 'vapp', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vapp_started;', + w * 30, h * 27, '', 'vApp Started', null, null, this.getTagsForStencil(gn, 'vapp started', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeamzip;', + w * 23, h * 23, '', 'VeeamZIP', null, null, this.getTagsForStencil(gn, 'veeamzip zip', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_availability_suite;', + w * 23, h * 23, '', 'Veeam Availability Suite', null, null, this.getTagsForStencil(gn, 'availability suite', dt).join(' ')), + this.createVertexTemplateEntry(s + 'veeam_backup_and_replication_server;', + w * 37, h * 36, '', 'Veeam Backup and Replication Server', null, null, this.getTagsForStencil(gn, 'backup and replication server', dt).join(' ')), + this.createVertexTemplateEntry(s + 'veeam_backup_enterprise_manager_server;', + w * 37, h * 36, '', 'Veeam Backup Enterprise Manager Server', null, null, this.getTagsForStencil(gn, 'backup enterprise manager server', dt).join(' ')), + this.createVertexTemplateEntry(s + 'veeam_backup_search_server;', + w * 37, h * 36, '', 'Veeam Backup Search Server', null, null, this.getTagsForStencil(gn, 'backup search server', dt).join(' ')), + this.createVertexTemplateEntry(s + 'veeam_backup_shell;', + w * 23, h * 23, '', 'Veeam Backup Shell', null, null, this.getTagsForStencil(gn, 'backup shell', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_cloud_connect;', + w * 23, h * 23, '', 'Veeam Cloud Connect', null, null, this.getTagsForStencil(gn, 'cloud connect', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_explorer;', + w * 23, h * 23, '', 'Veeam Explorer', null, null, this.getTagsForStencil(gn, 'explorer', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_explorer_for_active_directory;', + w * 23, h * 23, '', 'Veeam Explorer for Active Directory', null, null, this.getTagsForStencil(gn, 'explorer for active directory', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_explorer_for_exchange;', + w * 23, h * 23, '', 'Veeam Explorer for Exchange', null, null, this.getTagsForStencil(gn, 'explorer for exchange', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_explorer_for_sharepoint;', + w * 23, h * 23, '', 'Veeam Explorer for SharePoint', null, null, this.getTagsForStencil(gn, 'explorer for sharepoint', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_explorer_for_sql;', + w * 23, h * 23, '', 'Veeam Explorer for SQL', null, null, this.getTagsForStencil(gn, 'explorer for sql', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_logo;fillColor=#232020;', + w * 72, h * 19, '', 'Veeam Logo', null, null, this.getTagsForStencil(gn, 'logo', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_one_business_view;', + w * 23, h * 23, '', 'Veeam ONE Business View', null, null, this.getTagsForStencil(gn, 'one business view', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_one_monitor;', + w * 23, h * 23, '', 'Veeam ONE Monitor', null, null, this.getTagsForStencil(gn, 'one monitor', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_one_reporter;', + w * 23, h * 23, '', 'Veeam ONE Reporter', null, null, this.getTagsForStencil(gn, 'one reporter', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'veeam_one_server;', + w * 23, h * 23, '', 'Veeam ONE Server', null, null, this.getTagsForStencil(gn, 'one server', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'virtual_lab;', + w * 23, h * 23, '', 'Virtual Lab', null, null, this.getTagsForStencil(gn, 'virtual lab', dt).join(' ')), + this.createVertexTemplateEntry(s + 'virtual_machine;', + w * 23, h * 23, '', 'Virtual Machine', null, null, this.getTagsForStencil(gn, '', dt).join(' ')), + this.createVertexTemplateEntry(s + 'virtual_switch;', + w * 23, h * 23, '', 'Virtual Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vmware_host;', + w * 62, h * 60, '', 'VMware Host', null, null, this.getTagsForStencil(gn, 'vmware host', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_backup;', + w * 25, h * 23, '', 'VM Backup', null, null, this.getTagsForStencil(gn, 'vm backup', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_failed;', + w * 28, h * 27, '', 'VM Failed', null, null, this.getTagsForStencil(gn, 'vm failed', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_image_full_backup;', + w * 19, h * 26, '', 'VM Image Full Backup', null, null, this.getTagsForStencil(gn, 'vm image full backup', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_image_incremental_backup;', + w * 19, h * 26, '', 'VM Image Incremental Backup', null, null, this.getTagsForStencil(gn, 'vm image incremental backup', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_linux;', + w * 23, h * 42, '', 'VM Linux', null, null, this.getTagsForStencil(gn, 'vm linux', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_locked;', + w * 28, h * 26, '', 'VM Locked', null, null, this.getTagsForStencil(gn, 'vm locked', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_no_network;', + w * 27, h * 26, '', 'VM No Network', null, null, this.getTagsForStencil(gn, 'vm no network', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_problem;', + w * 28, h * 26, '', 'VM Problem', null, null, this.getTagsForStencil(gn, 'vm problem', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_running;', + w * 28, h * 27, '', 'VM Running', null, null, this.getTagsForStencil(gn, 'vm running', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_saved_state;', + w * 28, h * 27, '', 'VM Saved State', null, null, this.getTagsForStencil(gn, 'vm saved state', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vm_windows;', + w * 23, h * 42, '', 'VM Windows', null, null, this.getTagsForStencil(gn, 'vm windows', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vnic;', + w * 23, h * 23, '', 'vNIC', null, null, this.getTagsForStencil(gn, 'vnic', dt).join(' ')), + this.createVertexTemplateEntry(s + 'vsb_file;', + w * 17, h * 23, '', '.vsb File', null, null, this.getTagsForStencil(gn, 'vsb file', dt).join(' ')), + this.createVertexTemplateEntry(s + 'wan_accelerator;', + w * 23, h * 23, '', 'WAN Accelerator', null, null, this.getTagsForStencil(gn, 'wan accelerator wireless area network', dt).join(' ')), + this.createVertexTemplateEntry(s + 'web_console;', + w * 23, h * 23, '', 'Web Console', null, null, this.getTagsForStencil(gn, 'web console', dt).join(' ')), + this.createVertexTemplateEntry(s + 'web_ui;', + w * 23, h * 23, '', 'Web UI', null, null, this.getTagsForStencil(gn, 'web ui user interface', dt).join(' ')), + this.createVertexTemplateEntry(s + 'workstation;', + w * 34, h * 23, '', 'Workstation', null, null, this.getTagsForStencil(gn, 'workstation', dt).join(' ')) + ]; + + this.addPalette('veeam2D', 'Veeam / 2D', false, mxUtils.bind(this, function(content) + { + for (var i = 0; i < fns.length; i++) + { + content.appendChild(fns[i](content)); + } + })); + }; + + Sidebar.prototype.addVeeam3DPalette = function() + { + var sn = 'shadow=0;dashed=0;html=1;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.veeam.3d.'; + var s = 'shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#4495D1;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.veeam.3d.'; + var s2 = 'shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#EF8F21;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.veeam.3d.'; + + // Space savers + var sb = this; + var gn = 'mxgraph.veeam.3d'; + var dt = 'veeam 3d three dimension vmware virtual machine '; + + var w = 2.0; + var h = 2.0; + + var fns = + [ + this.createVertexTemplateEntry(sn + '1ftvm;', + w * 34, h * 31, '', '1FTVM', null, null, this.getTagsForStencil(gn, '1ftvm', dt).join(' ')), + this.createVertexTemplateEntry(sn + '1ftvm_error;', + w * 34, h * 31, '', '1FTVM Error', null, null, this.getTagsForStencil(gn, '1ftvm error', dt).join(' ')), + this.createVertexTemplateEntry(sn + '1ftvm_running;', + w * 34, h * 31, '', '1FTVM Running', null, null, this.getTagsForStencil(gn, '1ftvm running', dt).join(' ')), + this.createVertexTemplateEntry(sn + '1ftvm_unavailable;', + w * 34, h * 31, '', '1FTVM Unavailable', null, null, this.getTagsForStencil(gn, '1ftvm unavailable', dt).join(' ')), + this.createVertexTemplateEntry(sn + '1ftvm_warning;', + w * 34, h * 31, '', '1FTVM Warning', null, null, this.getTagsForStencil(gn, '1ftvm warning', dt).join(' ')), + this.createVertexTemplateEntry(sn + '2ftvm;', + w * 34, h * 31, '', '2FTVM', null, null, this.getTagsForStencil(gn, '2ftvm', dt).join(' ')), + this.createVertexTemplateEntry(sn + '2ftvm_error;', + w * 34, h * 31, '', '2FTVM Error', null, null, this.getTagsForStencil(gn, '2ftvm error', dt).join(' ')), + this.createVertexTemplateEntry(sn + '2ftvm_running;', + w * 34, h * 31, '', '2FTVM Running', null, null, this.getTagsForStencil(gn, '2ftvm running', dt).join(' ')), + this.createVertexTemplateEntry(sn + '2ftvm_unavailable;', + w * 34, h * 31, '', '2FTVM Unavailable', null, null, this.getTagsForStencil(gn, '2ftvm unavailable', dt).join(' ')), + this.createVertexTemplateEntry(sn + '2ftvm_warning;', + w * 34, h * 31, '', '2FTVM Warning', null, null, this.getTagsForStencil(gn, '2ftvm warning', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'backup_repository;', + w * 31, h * 31, '', 'Backup Repository', null, null, this.getTagsForStencil(gn, 'backup repository', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'backup_repository_2;', + w * 31, h * 31, '', 'Backup Repository', null, null, this.getTagsForStencil(gn, 'backup repository', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'cd;', + w * 34, h * 13, '', 'CD', null, null, this.getTagsForStencil(gn, 'cd', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'database;', + w * 29, h * 31, '', 'Database', null, null, this.getTagsForStencil(gn, 'database', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'datastore;', + w * 22, h * 30, '', 'Datastore', null, null, this.getTagsForStencil(gn, 'datastore', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'datastore_snapshot;', + w * 27, h * 17, '', 'Datastore Snapshot', null, null, this.getTagsForStencil(gn, 'datastore snapshot', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'datastore_volume;', + w * 27, h * 17, '', 'Datastore Volume', null, null, this.getTagsForStencil(gn, 'datastore volume', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'esx_esxi;', + w * 19, h * 26, '', 'ESX ESXi', null, null, this.getTagsForStencil(gn, 'esx esxi', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'failover_protective_snapshot;', + w * 23, h * 23, '', 'Failover Protective Snapshot', null, null, this.getTagsForStencil(gn, 'failover protective snapshot', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'failover_protective_snapshot_locked;', + w * 28, h * 23, '', 'Failover Protective Snapshot Locked', null, null, this.getTagsForStencil(gn, 'failover protective snapshot locked', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'failover_protective_snapshot_running;', + w * 29, h * 23, '', 'Failover Protective Snapshot Running', null, null, this.getTagsForStencil(gn, 'failover protective snapshot running', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'free_datastore;', + w * 22, h * 30, '', 'Free Datastore', null, null, this.getTagsForStencil(gn, 'free datastore', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'full_datastore;', + w * 22, h * 30, '', 'Full Datastore', null, null, this.getTagsForStencil(gn, 'full datastore', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'hard_drive;fillColor=#637D8A;gradientColor=#324752;strokeColor=none;', + w * 31, h * 14, '', 'Hard Drive', null, null, this.getTagsForStencil(gn, 'hard drive', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'hyper_v_host;', + w * 55, h * 49, '', 'Hyper-V Host', null, null, this.getTagsForStencil(gn, 'hyper-v host', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'lost_space;', + w * 22, h * 30, '', 'Lost Space', null, null, this.getTagsForStencil(gn, 'lost space', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'lun;', + w * 36, h * 20, '', 'LUN', null, null, this.getTagsForStencil(gn, 'lun', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'medium_datastore;', + w * 22, h * 30, '', 'Medium Datastore', null, null, this.getTagsForStencil(gn, 'medium datastore', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'network_card;', + w * 19, h * 20, '', 'Network Card', null, null, this.getTagsForStencil(gn, 'network card', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'physical_storage;', + w * 54, h * 30, '', 'Physical Storage', null, null, this.getTagsForStencil(gn, 'physical_storage', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'proxy;', + w * 23, h * 23, '', 'Proxy', null, null, this.getTagsForStencil(gn, 'proxy', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'proxy_appliance;', + w * 23, h * 23, '', 'Proxy Appliance', null, null, this.getTagsForStencil(gn, 'proxy appliance', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'remote_site;', + w * 23, h * 30, '', 'Remote Site', null, null, this.getTagsForStencil(gn, 'remote site', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'remote_storage;', + w * 26, h * 31, '', 'Remote Storage', null, null, this.getTagsForStencil(gn, 'remote storage', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'resource_pool;', + w * 28, h * 16, '', 'Resource Pool', null, null, this.getTagsForStencil(gn, 'resource pool', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'service_vnic;', + w * 36, h * 32, '', 'Service vNIC', null, null, this.getTagsForStencil(gn, 'service vnic', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'switch;', + w * 55, h * 29, '', 'Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape;', + w * 29, h * 29, '', 'Tape', null, null, this.getTagsForStencil(gn, 'tape', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape_checked;', + w * 35, h * 29, '', 'Tape Checked', null, null, this.getTagsForStencil(gn, 'tape checked', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape_ejecting;', + w * 35, h * 29, '', 'Tape Ejecting', null, null, this.getTagsForStencil(gn, 'tape ejecting', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape_library;', + w * 31, h * 37, '', 'Tape Library', null, null, this.getTagsForStencil(gn, 'tape library', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape_licensed;', + w * 35, h * 29, '', 'Tape Licensed', null, null, this.getTagsForStencil(gn, 'tape licensed', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape_recording;', + w * 35, h * 29, '', 'Tape Recording', null, null, this.getTagsForStencil(gn, 'tape recording', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'tape_server;', + w * 23, h * 23, '', 'Tape Server', null, null, this.getTagsForStencil(gn, 'tape server', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vapp;', + w * 46, h * 31, '', 'vApp', null, null, this.getTagsForStencil(gn, 'vapp', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vapp_started;', + w * 46, h * 31, '', 'vApp Started', null, null, this.getTagsForStencil(gn, 'vapp started', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_availability_suite;', + w * 23, h * 23, '', 'Veeam Availability Suite', null, null, this.getTagsForStencil(gn, 'veeam availability suite', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_backup_and_replication_server;', + w * 23, h * 23, '', 'Veeam Backup and Replication Server', null, null, this.getTagsForStencil(gn, 'veeam backup and replication server', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_backup_enterprise_manager_server;', + w * 23, h * 23, '', 'Veeam Backup Enterprise Manager Server', null, null, this.getTagsForStencil(gn, 'veeam backup enterprise manager server', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_backup_enterprise_manager_server_2d;', + w * 20, h * 20, '', 'Veeam Backup Enterprise Manager Server 2D', null, null, this.getTagsForStencil(gn, 'veeam backup enterprise manager derver 2d two dimensional', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_backup_search_server;', + w * 23, h * 23, '', 'Veeam Backup Search Server', null, null, this.getTagsForStencil(gn, 'veeam backup search server', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_one_business_view;', + w * 23, h * 23, '', 'Veeam ONE Business View', null, null, this.getTagsForStencil(gn, 'veeam one business view', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_one_monitor;', + w * 23, h * 23, '', 'Veeam ONE Monitor', null, null, this.getTagsForStencil(gn, 'veeam one monitor', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_one_reporter;', + w * 23, h * 23, '', 'Veeam ONE Reporter', null, null, this.getTagsForStencil(gn, 'veeam one reporter', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'veeam_one_server;', + w * 23, h * 23, '', 'Veeam ONE Server', null, null, this.getTagsForStencil(gn, 'veeam one server', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'virtual_machine;', + w * 23, h * 23, '', 'Virtual Machine', null, null, this.getTagsForStencil(gn, 'virtual machine', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vmware_host;', + w * 55, h * 49, '', 'VMware Host', null, null, this.getTagsForStencil(gn, 'vmware host', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_failed;', + w * 28, h * 23, '', 'VM Failed', null, null, this.getTagsForStencil(gn, 'vm failed', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_linux;', + w * 23, h * 30, '', 'VM Linux', null, null, this.getTagsForStencil(gn, 'vm linux', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_no_network;', + w * 29, h * 23, '', 'VM No Network', null, null, this.getTagsForStencil(gn, 'vm no network', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_problem;', + w * 28, h * 23, '', 'VM Problem', null, null, this.getTagsForStencil(gn, 'vm problem', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_running;', + w * 28, h * 23, '', 'VM Running', null, null, this.getTagsForStencil(gn, 'vm running', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_saved_state;', + w * 29, h * 24, '', 'VM Saved State', null, null, this.getTagsForStencil(gn, 'vm saved state', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vm_windows;', + w * 23, h * 30, '', 'VM Windows', null, null, this.getTagsForStencil(gn, 'vm windows', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'vnic;', + w * 31, h * 31, '', 'vNIC', null, null, this.getTagsForStencil(gn, 'vnic', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'wan_accelerator;', + w * 23, h * 23, '', 'WAN Accelerator', null, null, this.getTagsForStencil(gn, 'wan accelerator', dt).join(' ')), + this.createVertexTemplateEntry(sn + 'workstation;', + w * 38, h * 31, '', 'Workstation', null, null, this.getTagsForStencil(gn, 'workstation', dt).join(' ')) + ]; + + this.addPalette('veeam3D', 'Veeam / 3D', false, mxUtils.bind(this, function(content) + { + for (var i = 0; i < fns.length; i++) + { + content.appendChild(fns[i](content)); + } + })); + }; + + + + + + + + + +})(); diff --git a/war/js/diagramly/sidebar/Sidebar.js b/war/js/diagramly/sidebar/Sidebar.js index f9240d4c..8b7bd8d3 100644 --- a/war/js/diagramly/sidebar/Sidebar.js +++ b/war/js/diagramly/sidebar/Sidebar.js @@ -74,6 +74,11 @@ */ Sidebar.prototype.office = ['Clouds', 'Communications', 'Concepts', 'Databases', 'Devices', 'Security', 'Servers', 'Services', 'Sites', 'Users']; + /** + * + */ + Sidebar.prototype.veeam = ['2D', '3D']; + /** * */ @@ -105,6 +110,7 @@ {id: 'pid', prefix: 'pid', libs: Sidebar.prototype.pids}, {id: 'cisco', prefix: 'cisco', libs: Sidebar.prototype.cisco}, {id: 'office', prefix: 'office', libs: Sidebar.prototype.office}, + {id: 'veeam', prefix: 'veeam', libs: Sidebar.prototype.veeam}, {id: 'cabinets', libs: ['cabinets']}, {id: 'floorplan', libs: ['floorplan']}, {id: 'bootstrap', libs: ['bootstrap']}, @@ -286,7 +292,8 @@ {title: 'Citrix', id: 'citrix', image: IMAGE_PATH + '/sidebar-citrix.png'}, {title: 'Network', id: 'network', image: IMAGE_PATH + '/sidebar-network.png'}, {title: 'Office', id: 'office', image: IMAGE_PATH + '/sidebar-office.png'}, - {title: mxResources.get('rack'), id: 'rack', image: IMAGE_PATH + '/sidebar-rack.png'}]}, + {title: mxResources.get('rack'), id: 'rack', image: IMAGE_PATH + '/sidebar-rack.png'}, + {title: 'Veeam', id: 'veeam', image: IMAGE_PATH + '/sidebar-veeam.png'}]}, {title: mxResources.get('business'), entries: [{title: 'ArchiMate 3.0', id: 'archimate3', image: IMAGE_PATH + '/sidebar-archimate3.png'}, {title: mxResources.get('archiMate21'), id: 'archimate', image: IMAGE_PATH + '/sidebar-archimate.png'}, @@ -437,8 +444,8 @@ var h = clone.clientHeight + 18; clone.parentNode.removeChild(clone); - new mxXmlRequest(EXPORT_URL, 'w=456&h=' + h + '&html=' + - encodeURIComponent(this.editorUi.editor.compress(html))).simulate(document, '_blank'); + new mxXmlRequest(EXPORT_URL, 'w=456&h=' + h + '&html=' + encodeURIComponent( + this.editorUi.editor.graph.compress(html))).simulate(document, '_blank'); return; } @@ -564,6 +571,7 @@ var eip = this.eip; var gmdl = this.gmdl; var office = this.office; + var veeam = this.veeam; var archimate3 = this.archimate3; if (urlParams['createindex'] == '1') @@ -593,6 +601,7 @@ this.addMockupPalette(); this.addElectricalPalette(); this.addOfficePalette(); + this.addVeeamPalette(); this.addStencilPalette('arrows', mxResources.get('arrows'), dir + '/arrows.xml', ';html=1;' + mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;' + mxConstants.STYLE_STROKEWIDTH + '=2;strokeColor=#000000;'); diff --git a/war/js/embed-static.min.js b/war/js/embed-static.min.js index 848f2d41..b1e50432 100644 --- a/war/js/embed-static.min.js +++ b/war/js/embed-static.min.js @@ -27,31 +27,31 @@ e[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup "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"},g;for(g in f)"string"===typeof f[g]&&Object.hasOwnProperty.call(f,g)&&(f[g]=f[f[g]]);"undefined"!==typeof window&&(window.cssSchema=f);var h,k;(function(){function a(b){var c=parseInt(b.substring(1),16);return 65535>10),56320+(c&1023))):c==c?String.fromCharCode(c):" ">b[1]?"":b[1]}function b(a,c){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g, c)+'"'}function c(a){return e[a]||(e[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function d(a){return f[a]||(f[a]=("\u0010">a?"%0":"%")+a.charCodeAt(0).toString(16))}var e={"\\":"\\\\"},f={"\\":"%5c"},g=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]*)|[~|^$*]\x3d|[^\"'\\\\/]|/(?![/*])", -"gi"),m=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),l=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");k=function(b){return b.replace(m,a)};h=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",h=0,m=a.length;h=q?" ":/url\(/i.test(n)?"url("+b(n.replace(l,""),d)+")":n;if(f!=n||" "!=n)a[e++]=f=n}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=h,window.decodeCss=k);var m=function(){function a(b){b=(""+b).match(l);return!b?c:new g(h(b[1]),h(b[2]),h(b[3]),h(b[4]),h(b[5]),h(b[6]),h(b[7]))}function b(a,e){return"string"==typeof a?encodeURI(a).replace(e,d):c}function d(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function e(a){if(a=== -c)return c;a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var b=k,d;(d=a.replace(b,"$1"))!=a;a=d);return a}function f(a,b){var c=a.T(),d=b.K();d?c.ga(b.j):d=b.X();d?c.da(b.n):d=b.Y();d?c.ea(b.k):d=b.$();var g=b.g,h=e(g);if(d)c.ca(b.V()),h=h&&h.replace(m,"");else if(d=!!g){if(47!==h.charCodeAt(0))var h=e(c.g||"").replace(m,""),k=h.lastIndexOf("/")+1,h=e((k?h.substring(0,k):"")+e(g)).replace(m,"")}else h=h&&h.replace(m,""),h!==g&&c.G(h);d?c.G(h):d=b.aa();d?c.O(b.l):d=b.Z();d&&c.fa(b.o); -return c}function g(a,b,c,d,e,f,h){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=h}function h(a){return"string"==typeof a&&0=q?" ":/url\(/i.test(n)?"url("+b(n.replace(m,""),d)+")":n;if(f!=n||" "!=n)a[e++]=f=n}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=h,window.decodeCss=k);var l=function(){function a(b){b=(""+b).match(m);return!b?c:new g(h(b[1]),h(b[2]),h(b[3]),h(b[4]),h(b[5]),h(b[6]),h(b[7]))}function b(a,e){return"string"==typeof a?encodeURI(a).replace(e,d):c}function d(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function e(a){if(a=== +c)return c;a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var b=k,d;(d=a.replace(b,"$1"))!=a;a=d);return a}function f(a,b){var c=a.T(),d=b.K();d?c.ga(b.j):d=b.X();d?c.da(b.n):d=b.Y();d?c.ea(b.k):d=b.$();var g=b.g,h=e(g);if(d)c.ca(b.V()),h=h&&h.replace(l,"");else if(d=!!g){if(47!==h.charCodeAt(0))var h=e(c.g||"").replace(l,""),k=h.lastIndexOf("/")+1,h=e((k?h.substring(0,k):"")+e(g)).replace(l,"")}else h=h&&h.replace(l,""),h!==g&&c.G(h);d?c.G(h):d=b.aa();d?c.O(b.l):d=b.Z();d&&c.fa(b.o); +return c}function g(a,b,c,d,e,f,h){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=h}function h(a){return"string"==typeof a&&0]/g,H={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a", -"\x3c":"%3c","\x3e":"%3e"},B=/^(?:([^:/?# ]+):)?/,A=/^(?:https?|mailto|data)$/i;l=function(){var a={};return function T(b,c,d,g,m){b=K(b);var l=f[b];if(!l||"object"!==typeof l)c.length=0;else{for(var n=l.cssPropBits,D=n&80,p=n&1536,q=NaN,r=0,B=0;r=u)A=n&1?A:"";else if(J=A.charCodeAt(1),z=A.charCodeAt(2),H=48<=J&&57>=J,S=48<=z&&57>=z,43===u&&(H||46===J&&S))A=n&1?(H?"":"0")+A.substring(1):"";else if(45===u&&(H||46===J&&S))A=n&4?(H?"-":"-0")+A.substring(1):n&1?"0":"";else if(46===u&&H)A=n&1?"0"+A:"";else if('url("'===A.substring(0,5))A= -d&&n&16?e(s(h(g,c[r].substring(5,A.length-2)),b,d)):"";else if("("===A.charAt(A.length-1))a:{L=c;ca=r;A=1;U=ca+1;for(u=L.length;U]/g,H={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a", +"\x3c":"%3c","\x3e":"%3e"},B=/^(?:([^:/?# ]+):)?/,A=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function T(b,c,d,g,l){b=K(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var n=m.cssPropBits,D=n&80,p=n&1536,q=NaN,r=0,B=0;r=u)A=n&1?A:"";else if(J=A.charCodeAt(1),z=A.charCodeAt(2),H=48<=J&&57>=J,S=48<=z&&57>=z,43===u&&(H||46===J&&S))A=n&1?(H?"":"0")+A.substring(1):"";else if(45===u&&(H||46===J&&S))A=n&4?(H?"-":"-0")+A.substring(1):n&1?"0":"";else if(46===u&&H)A=n&1?"0"+A:"";else if('url("'===A.substring(0,5))A= +d&&n&16?e(s(h(g,c[r].substring(5,A.length-2)),b,d)):"";else if("("===A.charAt(A.length-1))a:{L=c;ca=r;A=1;U=ca+1;for(u=L.length;Ug&&" "===b[k-1]&&--k;f.startAtrule&&f.startAtrule(b[h].toLowerCase(),b.slice(g,k));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,h){++f;for(h.startBlock&&h.startBlock();fm)return m=~m,m===h?m+1:m;var l=a[m];if("{"!==l)return m===h?m+1:m;c=m+1;m>h&&" "===a[m-1]&&--m;for(g.startRuleset&&g.startRuleset(a.slice(h,m));cl)l=~l;else{for(var n=[],p=0,q=b;qg&&" "===b[k-1]&&--k;f.startAtrule&&f.startAtrule(b[h].toLowerCase(),b.slice(g,k));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,h){++f;for(h.startBlock&&h.startBlock();fl)return l=~l,l===h?l+1:l;var m=a[l];if("{"!==m)return l===h?l+1:l;c=l+1;l>h&&" "===a[l-1]&&--l;for(g.startRuleset&&g.startRuleset(a.slice(h,l));cm)m=~m;else{for(var n=[],p=0,q=b;q])/g;f=a+"";if(fa)f=f.split(g);else{for(var h=[],k=0,m;(m=g.exec(f))!==c;)h.push(f.substring(k,m.index)),h.push(m[0]),k=m.index+m[0].length;h.push(f.substring(k));f=h}p(b,f,0,{r:d,C:d},e)}}function n(a,b,c,d,e){return function(){p(a,b,c,d,e)}}function p(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var h,k,m,l=c.length;dc)){for(f=g.length;--f>c;){var h=g[f].v;e.f[h]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",h,"\x3e")}c])/g;f=a+"";if(fa)f=f.split(g);else{for(var h=[],k=0,l;(l=g.exec(f))!==c;)h.push(f.substring(k,l.index)),h.push(l[0]),k=l.index+l[0].length;h.push(f.substring(k));f=h}p(b,f,0,{r:d,C:d},e)}}function n(a,b,c,d,e){return function(){p(a,b,c,d,e)}}function p(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var h,k,l,m=c.length;dc)){for(f=g.length;--f>c;){var h=g[f].v;e.f[h]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",h,"\x3e")}c/g,S=/\"/g,L=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,fa=3==="a,b".split(/(,)/).length,ca=e.c.CDATA|e.c.RCDATA,U={},ea={},ia=/^(?:https?|mailto|data)$/i,Z={};Z.pa=Z.escapeAttrib=h;Z.ra=Z.makeHtmlSanitizer=r;Z.sa=Z.makeSaxParser=l;Z.ta=Z.makeTagPolicy=aa;Z.wa=Z.normalizeRCData=k;Z.xa=Z.sanitize= -function(a,b,c,d){return w(a,aa(b,c,d))};Z.ya=Z.sanitizeAttribs=V;Z.za=Z.sanitizeWithPolicy=w;Z.Ba=Z.unescapeEntities=g;return Z}(u);g=e.sanitize;"undefined"!==typeof window&&(window.html=e,window.html_sanitize=g)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,b){var c="",d,e,f,g,h,k,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m>2,d=(d&3)<<4|e>>4,h=(e&15)<<2|f>>6,k=f&63,isNaN(e)?h=k=64:isNaN(f)&&(k=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(k);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,h,k=0;for(a= +c,M=/\0/g,R=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,$=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,Y=/&/g,Q=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,W=/[<]/g,X=/>/g,S=/\"/g,L=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,fa=3==="a,b".split(/(,)/).length,ca=e.c.CDATA|e.c.RCDATA,U={},ea={},ia=/^(?:https?|mailto|data)$/i,Z={};Z.pa=Z.escapeAttrib=h;Z.ra=Z.makeHtmlSanitizer=r;Z.sa=Z.makeSaxParser=m;Z.ta=Z.makeTagPolicy=aa;Z.wa=Z.normalizeRCData=k;Z.xa=Z.sanitize= +function(a,b,c,d){return w(a,aa(b,c,d))};Z.ya=Z.sanitizeAttribs=V;Z.za=Z.sanitizeWithPolicy=w;Z.Ba=Z.unescapeEntities=g;return Z}(u);g=e.sanitize;"undefined"!==typeof window&&(window.html=e,window.html_sanitize=g)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,b){var c="",d,e,f,g,h,k,l=0;for(null!=b&&b||(a=Base64._utf8_encode(a));l>2,d=(d&3)<<4|e>>4,h=(e&15)<<2|f>>6,k=f&63,isNaN(e)?h=k=64:isNaN(f)&&(k=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(k);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,h,k=0;for(a= a.replace(/[^A-Za-z0-9\+\/\=]/g,"");k>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|h,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=h&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?b+=String.fromCharCode(d): -(127d?b+=String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=c1=c2=0;cd?(b+=String.fromCharCode(d),c++):191d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};!function(a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=a()}(function(){return function b(c,d,e){function f(h,m){if(!d[h]){if(!c[h]){var l="function"==typeof require&&require;if(!m&&l)return l(h,!0);if(g)return g(h,!0);l=Error("Cannot find module '"+h+"'");throw l.code="MODULE_NOT_FOUND",l;}l=d[h]={exports:{}}; -c[h][0].call(l.exports,function(b){var d=c[h][1][b];return f(d?d:b)},l,l.exports,b,c,d,e)}return d[h].exports}for(var g="function"==typeof require&&require,h=0;hb.windowBits&&(b.windowBits+=16);this.err=0;this.msg= -"";this.ended=!1;this.chunks=[];this.strm=new l;this.strm.avail_out=0;var c=g.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw Error(m[c]);if(b.header&&g.deflateSetHeader(this.strm,b.header),b.dictionary){var d;if(d="string"==typeof b.dictionary?k.string2buf(b.dictionary):"[object ArrayBuffer]"===n.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=g.deflateSetDictionary(this.strm,d),c!==p)throw Error(m[c]);this._dict_set=!0}}function f(b,c){var d= -new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/deflate"),h=b("./utils/common"),k=b("./utils/strings"),m=b("./zlib/messages"),l=b("./zlib/zstream"),n=Object.prototype.toString,p=0,r=-1,q=0,s=8;e.prototype.push=function(b,c){var d,e,f=this.strm,m=this.options.chunkSize;if(this.ended)return!1;e=c===~~c?c:!0===c?4:0;"string"==typeof b?f.input=k.string2buf(b):"[object ArrayBuffer]"===n.call(b)?f.input=new Uint8Array(b):f.input=b;f.next_in=0;f.avail_in=f.input.length;do{if(0=== -f.avail_out&&(f.output=new h.Buf8(m),f.next_out=0,f.avail_out=m),d=g.deflate(f,e),1!==d&&d!==p)return this.onEnd(d),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==e&&2!==e)||("string"===this.options.to?this.onData(k.buf2binstring(h.shrinkBuf(f.output,f.next_out))):this.onData(h.shrinkBuf(f.output,f.next_out)))}while((0d?b+=String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=c1=c2=0;cd?(b+=String.fromCharCode(d),c++):191d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};!function(a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=a()}(function(){return function b(c,d,e){function f(h,l){if(!d[h]){if(!c[h]){var m="function"==typeof require&&require;if(!l&&m)return m(h,!0);if(g)return g(h,!0);m=Error("Cannot find module '"+h+"'");throw m.code="MODULE_NOT_FOUND",m;}m=d[h]={exports:{}}; +c[h][0].call(m.exports,function(b){var d=c[h][1][b];return f(d?d:b)},m,m.exports,b,c,d,e)}return d[h].exports}for(var g="function"==typeof require&&require,h=0;hb.windowBits&&(b.windowBits+=16);this.err=0;this.msg= +"";this.ended=!1;this.chunks=[];this.strm=new m;this.strm.avail_out=0;var c=g.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw Error(l[c]);if(b.header&&g.deflateSetHeader(this.strm,b.header),b.dictionary){var d;if(d="string"==typeof b.dictionary?k.string2buf(b.dictionary):"[object ArrayBuffer]"===n.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=g.deflateSetDictionary(this.strm,d),c!==p)throw Error(l[c]);this._dict_set=!0}}function f(b,c){var d= +new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/deflate"),h=b("./utils/common"),k=b("./utils/strings"),l=b("./zlib/messages"),m=b("./zlib/zstream"),n=Object.prototype.toString,p=0,r=-1,q=0,s=8;e.prototype.push=function(b,c){var d,e,f=this.strm,l=this.options.chunkSize;if(this.ended)return!1;e=c===~~c?c:!0===c?4:0;"string"==typeof b?f.input=k.string2buf(b):"[object ArrayBuffer]"===n.call(b)?f.input=new Uint8Array(b):f.input=b;f.next_in=0;f.avail_in=f.input.length;do{if(0=== +f.avail_out&&(f.output=new h.Buf8(l),f.next_out=0,f.avail_out=l),d=g.deflate(f,e),1!==d&&d!==p)return this.onEnd(d),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==e&&2!==e)||("string"===this.options.to?this.onData(k.buf2binstring(h.shrinkBuf(f.output,f.next_out))):this.onData(h.shrinkBuf(f.output,f.next_out)))}while((0c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new n;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==m.Z_OK)throw Error(l[b]); -this.header=new p;g.inflateGetHeader(this.strm,this.header)}function f(b,c){var d=new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/inflate"),h=b("./utils/common"),k=b("./utils/strings"),m=b("./zlib/constants"),l=b("./zlib/messages"),n=b("./zlib/zstream"),p=b("./zlib/gzheader"),r=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,l,n,p,F=this.strm,H=this.options.chunkSize,B=this.options.dictionary,A=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?m.Z_FINISH:m.Z_NO_FLUSH; -"string"==typeof b?F.input=k.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?F.input=new Uint8Array(b):F.input=b;F.next_in=0;F.avail_in=F.input.length;do{if(0===F.avail_out&&(F.output=new h.Buf8(H),F.next_out=0,F.avail_out=H),d=g.inflate(F,m.Z_NO_FLUSH),d===m.Z_NEED_DICT&&B&&(p="string"==typeof B?k.string2buf(B):"[object ArrayBuffer]"===r.call(B)?new Uint8Array(B):B,d=g.inflateSetDictionary(this.strm,p)),d===m.Z_BUF_ERROR&&!0===A&&(d=m.Z_OK,A=!1),d!==m.Z_STREAM_END&&d!==m.Z_OK)return this.onEnd(d), -this.ended=!0,!1;F.next_out&&(0!==F.avail_out&&d!==m.Z_STREAM_END&&(0!==F.avail_in||e!==m.Z_FINISH&&e!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(f=k.utf8border(F.output,F.next_out),l=F.next_out-f,n=k.buf2string(F.output,f),F.next_out=l,F.avail_out=H-l,l&&h.arraySet(F.output,F.output,f,l,0),this.onData(n)):this.onData(h.shrinkBuf(F.output,F.next_out))));0===F.avail_in&&0===F.avail_out&&(A=!0)}while((0c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new n;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==l.Z_OK)throw Error(m[b]); +this.header=new p;g.inflateGetHeader(this.strm,this.header)}function f(b,c){var d=new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/inflate"),h=b("./utils/common"),k=b("./utils/strings"),l=b("./zlib/constants"),m=b("./zlib/messages"),n=b("./zlib/zstream"),p=b("./zlib/gzheader"),r=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,m,n,p,F=this.strm,H=this.options.chunkSize,B=this.options.dictionary,A=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?l.Z_FINISH:l.Z_NO_FLUSH; +"string"==typeof b?F.input=k.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?F.input=new Uint8Array(b):F.input=b;F.next_in=0;F.avail_in=F.input.length;do{if(0===F.avail_out&&(F.output=new h.Buf8(H),F.next_out=0,F.avail_out=H),d=g.inflate(F,l.Z_NO_FLUSH),d===l.Z_NEED_DICT&&B&&(p="string"==typeof B?k.string2buf(B):"[object ArrayBuffer]"===r.call(B)?new Uint8Array(B):B,d=g.inflateSetDictionary(this.strm,p)),d===l.Z_BUF_ERROR&&!0===A&&(d=l.Z_OK,A=!1),d!==l.Z_STREAM_END&&d!==l.Z_OK)return this.onEnd(d), +this.ended=!0,!1;F.next_out&&(0!==F.avail_out&&d!==l.Z_STREAM_END&&(0!==F.avail_in||e!==l.Z_FINISH&&e!==l.Z_SYNC_FLUSH)||("string"===this.options.to?(f=k.utf8border(F.output,F.next_out),m=F.next_out-f,n=k.buf2string(F.output,f),F.next_out=m,F.avail_out=H-m,m&&h.arraySet(F.output,F.output,f,m,0),this.onData(n)):this.onData(h.shrinkBuf(F.output,F.next_out))));0===F.avail_in&&0===F.avail_out&&(A=!0)}while((0c&&(b.subarray&&h||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;eb;b++)l[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;l[254]=l[254]=1;d.string2buf=function(b){var c,d,e,g,h,k=b.length,m=0;for(g=0;gd?1:2048>d?2:65536>d?3:4;c=new f.Buf8(m);for(g=h=0;hd?c[h++]=d:2048> -d?(c[h++]=192|d>>>6,c[h++]=128|63&d):65536>d?(c[h++]=224|d>>>12,c[h++]=128|d>>>6&63,c[h++]=128|63&d):(c[h++]=240|d>>>18,c[h++]=128|d>>>12&63,c[h++]=128|d>>>6&63,c[h++]=128|63&d);return c};d.buf2binstring=function(b){return e(b,b.length)};d.binstring2buf=function(b){for(var c=new f.Buf8(b.length),d=0,e=c.length;dg)m[f++]=g;else if(h=l[g],4g?m[f++]=g:(g-=65536,m[f++]=55296|g>>10&1023,m[f++]=56320|1023&g)}return e(m,f)};d.utf8border=function(b,c){var d;c=c||b.length;c>b.length&&(c=b.length);for(d=c-1;0<=d&&128===(192&b[d]);)d--;return 0>d?c:0===d?c:d+l[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,h){var k=65535&b|0;b=b>>>16&65535|0;for(var m=0;0!==d;){m=2E3c&&(b.subarray&&h||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;eb;b++)m[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;m[254]=m[254]=1;d.string2buf=function(b){var c,d,e,g,h,k=b.length,l=0;for(g=0;gd?1:2048>d?2:65536>d?3:4;c=new f.Buf8(l);for(g=h=0;hd?c[h++]=d:2048> +d?(c[h++]=192|d>>>6,c[h++]=128|63&d):65536>d?(c[h++]=224|d>>>12,c[h++]=128|d>>>6&63,c[h++]=128|63&d):(c[h++]=240|d>>>18,c[h++]=128|d>>>12&63,c[h++]=128|d>>>6&63,c[h++]=128|63&d);return c};d.buf2binstring=function(b){return e(b,b.length)};d.binstring2buf=function(b){for(var c=new f.Buf8(b.length),d=0,e=c.length;dg)l[f++]=g;else if(h=m[g],4g?l[f++]=g:(g-=65536,l[f++]=55296|g>>10&1023,l[f++]=56320|1023&g)}return e(l,f)};d.utf8border=function(b,c){var d;c=c||b.length;c>b.length&&(c=b.length);for(d=c-1;0<=d&&128===(192&b[d]);)d--;return 0>d?c:0===d?c:d+m[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,h){var k=65535&b|0;b=b>>>16&65535|0;for(var l=0;0!==d;){l=2E3d;d++){b=d; for(var e=0;8>e;e++)b=1&b?3988292384^b>>>1:b>>>1;c[d]=b}return c}();c.exports=function(b,c,d,k){d=k+d;for(b^=-1;k>>8^e[255&(b^c[k])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=B[c],c}function f(b){for(var c=b.length;0<=--c;)b[c]=0}function g(b){var c=b.state,d=c.pending;d>b.avail_out&&(d=b.avail_out);0!==d&&(v.arraySet(b.output,c.pending_buf,c.pending_out,d,b.next_out),b.next_out+=d,c.pending_out+=d,b.total_out+=d,b.avail_out-=d,c.pending-=d,0===c.pending&&(c.pending_out= -0))}function h(b,c){K._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function k(b,c){b.pending_buf[b.pending++]=c}function m(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function l(b,c){var d,e,f=b.max_chain_length,g=b.strstart,h=b.prev_length,k=b.nice_match,m=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,l=b.window,n=b.w_mask,D=b.prev,p=b.strstart+M,G=l[g+h-1],q=l[g+h];b.prev_length>=b.good_match&& -(f>>=2);k>b.lookahead&&(k=b.lookahead);do if(d=c,l[d+h]===q&&l[d+h-1]===G&&l[d]===l[g]&&l[++d]===l[g+1]){g+=2;d++;do;while(l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&gh){if(b.match_start=c,h=e,e>=k)break;G=l[g+h-1];q=l[g+h]}}while((c=D[c&n])>m&&0!==--f);return h<=b.lookahead?h:b.lookahead}function n(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>= +0))}function h(b,c){K._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function k(b,c){b.pending_buf[b.pending++]=c}function l(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function m(b,c){var d,e,f=b.max_chain_length,g=b.strstart,h=b.prev_length,k=b.nice_match,l=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,n=b.w_mask,D=b.prev,p=b.strstart+M,G=m[g+h-1],q=m[g+h];b.prev_length>=b.good_match&& +(f>>=2);k>b.lookahead&&(k=b.lookahead);do if(d=c,m[d+h]===q&&m[d+h-1]===G&&m[d]===m[g]&&m[++d]===m[g+1]){g+=2;d++;do;while(m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&gh){if(b.match_start=c,h=e,e>=k)break;G=m[g+h-1];q=m[g+h]}}while((c=D[c&n])>l&&0!==--f);return h<=b.lookahead?h:b.lookahead}function n(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>= g+(g-R)){v.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;c=d=b.hash_size;do e=b.head[--c],b.head[c]=e>=g?e-g:0;while(--d);c=d=g;do e=b.prev[--c],b.prev[c]=e>=g?e-g:0;while(--d);f+=g}if(0===b.strm.avail_in)break;c=b.strm;e=b.window;var h=b.strstart+b.lookahead,k=c.avail_in;if(d=(k>f&&(k=f),0===k?0:(c.avail_in-=k,v.arraySet(e,c.input,c.next_in,k,h),1===c.state.wrap?c.adler=F(c.adler,e,k,h):2===c.state.wrap&&(c.adler=H(c.adler,e,k,h)),c.next_in+=k,c.total_in+=k,k)), b.lookahead+=d,b.lookahead+b.insert>=E){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<=E&&(b.ins_h=(b.ins_h<< -b.hash_shift^b.window[b.strstart+E-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-R&&(b.match_length=l(b,d)),b.match_length>=E)if(e=K._tr_tally(b,b.strstart-b.match_start,b.match_length-E),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=E){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<=E)if(e=K._tr_tally(b,b.strstart-b.match_start,b.match_length-E),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=E){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<=E&&(b.ins_h=(b.ins_h<=b.match_length&&(b.strategy===T||b.match_length===E&&4096= +b.lookahead=E&&(b.ins_h=(b.ins_h<=b.match_length&&(b.strategy===T||b.match_length===E&&4096= E&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-E;e=K._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-E);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?$:Y,b.adler=2===c.wrap?0:1,c.last_flush=A,K._tr_init(c),J):e(b,P)}function t(b){var c=u(b);c===J&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=y[b.level].max_lazy,b.good_match=y[b.level].good_length,b.nice_match=y[b.level].nice_length,b.max_chain_length=y[b.level].max_chain,b.strstart=0,b.block_start= -0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=E-1,b.match_available=0,b.ins_h=0);return c}function z(b,c,d,f,g,h){if(!b)return P;var k=1;if(c===O&&(c=6),0>f?(k=0,f=-f):15g||g>x||d!==w||8>f||15c||9h||h>V)return e(b,P);8===f&&(f=9);var m=new s;return b.state=m,m.strm=b,m.wrap=k,m.gzhead=null,m.w_bits=f,m.w_size=1<f?(k=0,f=-f):15g||g>x||d!==w||8>f||15c||9h||h>V)return e(b,P);8===f&&(f=9);var l=new s;return b.state=l,l.strm=b,l.wrap=k,l.gzhead=null,l.w_bits=f,l.w_size=1<b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(n(b),0===b.lookahead&&c===A)return Q;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,h(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-R&&(h(b,!1),0===b.strm.avail_out))return Q}return b.insert=0,c===D?(h(b,!0),0===b.strm.avail_out?X:S):(b.strstart>b.block_start&&h(b,!1),Q)}),new q(4,4,8, -4,p),new q(4,5,16,8,p),new q(4,6,32,32,p),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return z(b,c,w,15,8,0)};d.deflateInit2=z;d.deflateReset=t;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?P:(b.state.gzhead=c,J):P};d.deflate=function(b,c){var d,l,p,G;if(!b||!b.state||5c)return b?e(b,P):P;if(l=b.state,!b.output||!b.input&&0!==b.avail_in|| -666===l.status&&c!==D)return e(b,0===b.avail_out?-5:P);if(l.strm=b,d=l.last_flush,l.last_flush=c,l.status===$)2===l.wrap?(b.adler=0,k(l,31),k(l,139),k(l,8),l.gzhead?(k(l,(l.gzhead.text?1:0)+(l.gzhead.hcrc?2:0)+(l.gzhead.extra?4:0)+(l.gzhead.name?8:0)+(l.gzhead.comment?16:0)),k(l,255&l.gzhead.time),k(l,l.gzhead.time>>8&255),k(l,l.gzhead.time>>16&255),k(l,l.gzhead.time>>24&255),k(l,9===l.level?2:2<=l.strategy||2>l.level?4:0),k(l,255&l.gzhead.os),l.gzhead.extra&&l.gzhead.extra.length&&(k(l,255&l.gzhead.extra.length), -k(l,l.gzhead.extra.length>>8&255)),l.gzhead.hcrc&&(b.adler=H(b.adler,l.pending_buf,l.pending,0)),l.gzindex=0,l.status=69):(k(l,0),k(l,0),k(l,0),k(l,0),k(l,0),k(l,9===l.level?2:2<=l.strategy||2>l.level?4:0),k(l,3),l.status=Y)):(p=w+(l.w_bits-8<<4)<<8,G=-1,G=2<=l.strategy||2>l.level?0:6>l.level?1:6===l.level?2:3,p|=G<<6,0!==l.strstart&&(p|=32),l.status=Y,m(l,p+(31-p%31)),0!==l.strstart&&(m(l,b.adler>>>16),m(l,65535&b.adler)),b.adler=1);if(69===l.status)if(l.gzhead.extra){for(p=l.pending;l.gzindex<(65535& -l.gzhead.extra.length)&&(l.pending!==l.pending_buf_size||(l.gzhead.hcrc&&l.pending>p&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p)),g(b),p=l.pending,l.pending!==l.pending_buf_size));)k(l,255&l.gzhead.extra[l.gzindex]),l.gzindex++;l.gzhead.hcrc&&l.pending>p&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p));l.gzindex===l.gzhead.extra.length&&(l.gzindex=0,l.status=73)}else l.status=73;if(73===l.status)if(l.gzhead.name){p=l.pending;do{if(l.pending===l.pending_buf_size&&(l.gzhead.hcrc&&l.pending>p&& -(b.adler=H(b.adler,l.pending_buf,l.pending-p,p)),g(b),p=l.pending,l.pending===l.pending_buf_size)){G=1;break}G=l.gzindexp&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p));0===G&&(l.gzindex=0,l.status=91)}else l.status=91;if(91===l.status)if(l.gzhead.comment){p=l.pending;do{if(l.pending===l.pending_buf_size&&(l.gzhead.hcrc&&l.pending>p&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p)),g(b), -p=l.pending,l.pending===l.pending_buf_size)){G=1;break}G=l.gzindexp&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p));0===G&&(l.status=103)}else l.status=103;if(103===l.status&&(l.gzhead.hcrc?(l.pending+2>l.pending_buf_size&&g(b),l.pending+2<=l.pending_buf_size&&(k(l,255&b.adler),k(l,b.adler>>8&255),b.adler=0,l.status=Y)):l.status=Y),0!==l.pending){if(g(b),0===b.avail_out)return l.last_flush= --1,J}else if(0===b.avail_in&&(c<<1)-(4=E&&0l.lookahead&&(l.match_length=l.lookahead)}if(l.match_length>= -E?(q=K._tr_tally(l,1,l.match_length-E),l.lookahead-=l.match_length,l.strstart+=l.match_length,l.match_length=0):(q=K._tr_tally(l,0,l.window[l.strstart]),l.lookahead--,l.strstart++),q&&(h(l,!1),0===l.strm.avail_out)){q=Q;break a}}q=(l.insert=0,c===D?(h(l,!0),0===l.strm.avail_out?X:S):l.last_lit&&(h(l,!1),0===l.strm.avail_out)?Q:W)}else q=y[l.level].func(l,c);if(q!==X&&q!==S||(l.status=666),q===Q||q===X)return 0===b.avail_out&&(l.last_flush=-1),J;if(q===W&&(1===c?K._tr_align(l):5!==c&&(K._tr_stored_block(l, -0,0,!1),3===c&&(f(l.head),0===l.lookahead&&(l.strstart=0,l.block_start=0,l.insert=0))),g(b),0===b.avail_out))return l.last_flush=-1,J}return c!==D?J:0>=l.wrap?1:(2===l.wrap?(k(l,255&b.adler),k(l,b.adler>>8&255),k(l,b.adler>>16&255),k(l,b.adler>>24&255),k(l,255&b.total_in),k(l,b.total_in>>8&255),k(l,b.total_in>>16&255),k(l,b.total_in>>24&255)):(m(l,b.adler>>>16),m(l,65535&b.adler)),g(b),0=d.w_size&&(0===h&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),k=new v.Buf8(d.w_size),v.arraySet(k,c,e-d.w_size,d.w_size,0),c=k,e=d.w_size);k=b.avail_in;l=b.next_in;m=b.input;b.avail_in=e;b.next_in= -0;b.input=c;for(n(d);d.lookahead>=E;){e=d.strstart;g=d.lookahead-(E-1);do d.ins_h=(d.ins_h<z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255,0===B)O[m++]=65535&H;else{if(!(16&B)){if(0===(64&B)){H=y[(65535&H)+(t&(1<>>=B,z-=B);15>z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255, -!(16&B)){if(0===(64&B)){H=v[(65535&H)+(t&(1<p){b.msg="invalid distance too far back";d.mode=30;break a}if(t>>>=B,z-=B,B=m-l,D>B){if(B=D-B,B>q&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(H=0,J=u,0===s){if(H+=r-B,B>3;h-=A;z-=A<<3;b.next_in=h;b.next_out=m;b.avail_in=hc)return b?e(b,P):P;if(m=b.state,!b.output||!b.input&&0!==b.avail_in|| +666===m.status&&c!==D)return e(b,0===b.avail_out?-5:P);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===$)2===m.wrap?(b.adler=0,k(m,31),k(m,139),k(m,8),m.gzhead?(k(m,(m.gzhead.text?1:0)+(m.gzhead.hcrc?2:0)+(m.gzhead.extra?4:0)+(m.gzhead.name?8:0)+(m.gzhead.comment?16:0)),k(m,255&m.gzhead.time),k(m,m.gzhead.time>>8&255),k(m,m.gzhead.time>>16&255),k(m,m.gzhead.time>>24&255),k(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),k(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(k(m,255&m.gzhead.extra.length), +k(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=H(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(k(m,0),k(m,0),k(m,0),k(m,0),k(m,0),k(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),k(m,3),m.status=Y)):(p=w+(m.w_bits-8<<4)<<8,G=-1,G=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,p|=G<<6,0!==m.strstart&&(p|=32),m.status=Y,l(m,p+(31-p%31)),0!==m.strstart&&(l(m,b.adler>>>16),l(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(p=m.pending;m.gzindex<(65535& +m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>p&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p)),g(b),p=m.pending,m.pending!==m.pending_buf_size));)k(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>p&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){p=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>p&& +(b.adler=H(b.adler,m.pending_buf,m.pending-p,p)),g(b),p=m.pending,m.pending===m.pending_buf_size)){G=1;break}G=m.gzindexp&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p));0===G&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){p=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>p&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p)),g(b), +p=m.pending,m.pending===m.pending_buf_size)){G=1;break}G=m.gzindexp&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p));0===G&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(k(m,255&b.adler),k(m,b.adler>>8&255),b.adler=0,m.status=Y)):m.status=Y),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush= +-1,J}else if(0===b.avail_in&&(c<<1)-(4=E&&0m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>= +E?(q=K._tr_tally(m,1,m.match_length-E),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=K._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(h(m,!1),0===m.strm.avail_out)){q=Q;break a}}q=(m.insert=0,c===D?(h(m,!0),0===m.strm.avail_out?X:S):m.last_lit&&(h(m,!1),0===m.strm.avail_out)?Q:W)}else q=y[m.level].func(m,c);if(q!==X&&q!==S||(m.status=666),q===Q||q===X)return 0===b.avail_out&&(m.last_flush=-1),J;if(q===W&&(1===c?K._tr_align(m):5!==c&&(K._tr_stored_block(m, +0,0,!1),3===c&&(f(m.head),0===m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(b),0===b.avail_out))return m.last_flush=-1,J}return c!==D?J:0>=m.wrap?1:(2===m.wrap?(k(m,255&b.adler),k(m,b.adler>>8&255),k(m,b.adler>>16&255),k(m,b.adler>>24&255),k(m,255&b.total_in),k(m,b.total_in>>8&255),k(m,b.total_in>>16&255),k(m,b.total_in>>24&255)):(l(m,b.adler>>>16),l(m,65535&b.adler)),g(b),0=d.w_size&&(0===h&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),k=new v.Buf8(d.w_size),v.arraySet(k,c,e-d.w_size,d.w_size,0),c=k,e=d.w_size);k=b.avail_in;m=b.next_in;l=b.input;b.avail_in=e;b.next_in= +0;b.input=c;for(n(d);d.lookahead>=E;){e=d.strstart;g=d.lookahead-(E-1);do d.ins_h=(d.ins_h<z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255,0===B)O[l++]=65535&H;else{if(!(16&B)){if(0===(64&B)){H=y[(65535&H)+(t&(1<>>=B,z-=B);15>z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255, +!(16&B)){if(0===(64&B)){H=v[(65535&H)+(t&(1<p){b.msg="invalid distance too far back";d.mode=30;break a}if(t>>>=B,z-=B,B=l-m,D>B){if(B=D-B,B>q&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(H=0,J=u,0===s){if(H+=r-B,B>3;h-=A;z-=A<<3;b.next_in=h;b.next_out=l;b.avail_in=h>>24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function f(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=this.wsize=this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new r.Buf16(320);this.work= new r.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function g(b){var c;return b&&b.state?(c=b.state,b.total_in=b.total_out=c.total=0,b.msg="",c.wrap&&(b.adler=1&c.wrap),c.mode=v,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new r.Buf32(K),c.distcode=c.distdyn=new r.Buf32(F),c.sane=1,c.back=-1,z):y}function h(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):y}function k(b,c){var d,e;return b&&b.state?(e=b.state, -0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d- -e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whavex;){if(0===m)break a;m--;w+=f[h++]<>>8&255;d.check=s(d.check,L,2,0);x=w=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1& -d.wrap)||(((255&w)<<8)+(w>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&w)){b.msg="unknown compression method";d.mode=30;break}if(w>>>=4,x-=4,Q=(15&w)+8,0===d.wbits)d.wbits=Q;else if(Q>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<x;){if(0===m)break a;m--;w+=f[h++]<>8&1);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode=3;case 3:for(;32>x;){if(0===m)break a;m--;w+=f[h++]<>>8&255,L[2]=w>>>16&255,L[3]=w>>>24&255,d.check=s(d.check,L,4,0));x=w=0;d.mode=4;case 4:for(;16>x;){if(0===m)break a;m--;w+=f[h++]<>8);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode= -5;case 5:if(1024&d.flags){for(;16>x;){if(0===m)break a;m--;w+=f[h++]<>>8&255,d.check=s(d.check,L,2,0));x=w=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(I=d.length,I>m&&(I=m),I&&(d.head&&(Q=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,I,Q)),512&d.flags&&(d.check=s(d.check,f,I,h)),m-=I,h+=I,d.length-=I),d.length))break a;d.length=0;d.mode= -7;case 7:if(2048&d.flags){if(0===m)break a;I=0;do Q=f[h+I++],d.head&&Q&&65536>d.length&&(d.head.name+=String.fromCharCode(Q));while(Q&&Id.length&&(d.head.comment+=String.fromCharCode(Q));while(Q&&Ix;){if(0===m)break a;m--;w+=f[h++]<>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>x;){if(0===m)break a;m--;w+=f[h++]<>>= -7&x;x-=7&x;d.mode=27;break}for(;3>x;){if(0===m)break a;m--;w+=f[h++]<>>=1,x-=1,3&w){case 0:d.mode=14;break;case 1:C=d;if(H){M=void 0;n=new r.Buf32(512);p=new r.Buf32(32);for(M=0;144>M;)C.lens[M++]=8;for(;256>M;)C.lens[M++]=9;for(;280>M;)C.lens[M++]=7;for(;288>M;)C.lens[M++]=8;t(1,C.lens,0,288,n,0,C.work,{bits:9});for(M=0;32>M;)C.lens[M++]=5;t(2,C.lens,0,32,p,0,C.work,{bits:5});H=!1}C.lencode=n;C.lenbits=9;C.distcode=p;C.distbits=5;if(d.mode=20,6===c){w>>>=2;x-=2;break a}break; -case 2:d.mode=17;break;case 3:b.msg="invalid block type",d.mode=30}w>>>=2;x-=2;break;case 14:w>>>=7&x;for(x-=7&x;32>x;){if(0===m)break a;m--;w+=f[h++]<>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&w,w=0,x=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(I=d.length){if(I>m&&(I=m),I>F&&(I=F),0===I)break a;r.arraySet(g,f,h,I,k);m-=I;h+=I;F-=I;k+=I;d.length-=I;break}d.mode=12;break;case 17:for(;14>x;){if(0===m)break a;m--;w+=f[h++]<< -x;x+=8}if(d.nlen=(31&w)+257,w>>>=5,x-=5,d.ndist=(31&w)+1,w>>>=5,x-=5,d.ncode=(15&w)+4,w>>>=4,x-=4,286x;){if(0===m)break a;m--;w+=f[h++]<>>=3;x-=3}for(;19>d.have;)d.lens[fa[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,X={bits:d.lenbits},W=t(0,d.lens,0,19,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid code lengths set"; -d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have>>24,M=65535&S,!(E<=x);){if(0===m)break a;m--;w+=f[h++]<M)w>>>=E,x-=E,d.lens[d.have++]=M;else{if(16===M){for(C=E+2;x>>=E,x-=E,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}Q=d.lens[d.have-1];I=3+(3&w);w>>>=2;x-=2}else if(17===M){for(C=E+3;x>>=E;x-=E;Q=0;I=3+(7&w); -w>>>=3;x-=3}else{for(C=E+7;x>>=E;x-=E;Q=0;I=11+(127&w);w>>>=7;x-=7}if(d.have+I>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;I--;)d.lens[d.have++]=Q}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,X={bits:d.lenbits},W=t(1,d.lens,0,d.nlen,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn, -X={bits:d.distbits},W=t(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,X),d.distbits=X.bits,W){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=m&&258<=F){b.next_out=k;b.avail_out=F;b.next_in=h;b.avail_in=m;d.hold=w;d.bits=x;u(b,N);k=b.next_out;g=b.output;F=b.avail_out;h=b.next_in;f=b.input;m=b.avail_in;w=d.hold;x=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;S=d.lencode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0=== -m)break a;m--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===m)break a;m--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,d.length=M,0===C){d.mode=26;break}if(32&C){d.back=-1;d.mode=12;break}if(64&C){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&C;d.mode=22;case 22:if(d.extra){for(C=d.extra;x>>=d.extra; -x-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=23;case 23:for(;S=d.distcode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0===m)break a;m--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===m)break a;m--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,64&C){b.msg="invalid distance code";d.mode=30;break}d.offset=M;d.extra=15&C;d.mode=24;case 24:if(d.extra){for(C=d.extra;x>>=d.extra;x-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===F)break a;if(I=N-F,d.offset>I){if(I=d.offset-I,I>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}I>d.wnext?(I-=d.wnext,G=d.wsize-I):G=d.wnext-I;I>d.length&&(I=d.length);C=d.window}else C=g,G=k-d.offset,I=d.length;I>F&&(I=F);F-=I;d.length-=I;do g[k++]=C[G++];while(--I);0===d.length&& -(d.mode=21);break;case 26:if(0===F)break a;g[k++]=d.length;F--;d.mode=21;break;case 27:if(d.wrap){for(;32>x;){if(0===m)break a;m--;w|=f[h++]<x;){if(0===m)break a;m--;w+=f[h++]<d.mode&&(27>d.mode||4!==c))&&l(b,b.output,b.next_out,N-b.avail_out)?(d.mode=31,-4):(K-=b.avail_in,N-=b.avail_out,b.total_in+=K,b.total_out+=N,d.total+=N,d.wrap&&N&&(b.adler=d.check=d.flags?s(d.check,g,N,b.next_out-N):q(d.check,g,N,b.next_out-N)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode|| -15===d.mode?256:0),(0===K&&0===N||4===c)&&W===z&&(W=-5),W)};d.inflateEnd=function(b){if(!b||!b.state)return y;var c=b.state;return c.window&&(c.window=null),b.state=null,z};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?y:(d.head=c,c.done=!1,z)):y};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?y:11===d.mode&&(e=1,e=q(e,c,f,0),e!==d.check)?-3:l(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,z)):y};d.inflateInfo= +0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d- +e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whavex;){if(0===l)break a;l--;w+=f[h++]<>>8&255;d.check=s(d.check,L,2,0);x=w=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1& +d.wrap)||(((255&w)<<8)+(w>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&w)){b.msg="unknown compression method";d.mode=30;break}if(w>>>=4,x-=4,Q=(15&w)+8,0===d.wbits)d.wbits=Q;else if(Q>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<x;){if(0===l)break a;l--;w+=f[h++]<>8&1);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode=3;case 3:for(;32>x;){if(0===l)break a;l--;w+=f[h++]<>>8&255,L[2]=w>>>16&255,L[3]=w>>>24&255,d.check=s(d.check,L,4,0));x=w=0;d.mode=4;case 4:for(;16>x;){if(0===l)break a;l--;w+=f[h++]<>8);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode= +5;case 5:if(1024&d.flags){for(;16>x;){if(0===l)break a;l--;w+=f[h++]<>>8&255,d.check=s(d.check,L,2,0));x=w=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(I=d.length,I>l&&(I=l),I&&(d.head&&(Q=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,I,Q)),512&d.flags&&(d.check=s(d.check,f,I,h)),l-=I,h+=I,d.length-=I),d.length))break a;d.length=0;d.mode= +7;case 7:if(2048&d.flags){if(0===l)break a;I=0;do Q=f[h+I++],d.head&&Q&&65536>d.length&&(d.head.name+=String.fromCharCode(Q));while(Q&&Id.length&&(d.head.comment+=String.fromCharCode(Q));while(Q&&Ix;){if(0===l)break a;l--;w+=f[h++]<>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>x;){if(0===l)break a;l--;w+=f[h++]<>>= +7&x;x-=7&x;d.mode=27;break}for(;3>x;){if(0===l)break a;l--;w+=f[h++]<>>=1,x-=1,3&w){case 0:d.mode=14;break;case 1:C=d;if(H){M=void 0;n=new r.Buf32(512);p=new r.Buf32(32);for(M=0;144>M;)C.lens[M++]=8;for(;256>M;)C.lens[M++]=9;for(;280>M;)C.lens[M++]=7;for(;288>M;)C.lens[M++]=8;t(1,C.lens,0,288,n,0,C.work,{bits:9});for(M=0;32>M;)C.lens[M++]=5;t(2,C.lens,0,32,p,0,C.work,{bits:5});H=!1}C.lencode=n;C.lenbits=9;C.distcode=p;C.distbits=5;if(d.mode=20,6===c){w>>>=2;x-=2;break a}break; +case 2:d.mode=17;break;case 3:b.msg="invalid block type",d.mode=30}w>>>=2;x-=2;break;case 14:w>>>=7&x;for(x-=7&x;32>x;){if(0===l)break a;l--;w+=f[h++]<>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&w,w=0,x=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(I=d.length){if(I>l&&(I=l),I>F&&(I=F),0===I)break a;r.arraySet(g,f,h,I,k);l-=I;h+=I;F-=I;k+=I;d.length-=I;break}d.mode=12;break;case 17:for(;14>x;){if(0===l)break a;l--;w+=f[h++]<< +x;x+=8}if(d.nlen=(31&w)+257,w>>>=5,x-=5,d.ndist=(31&w)+1,w>>>=5,x-=5,d.ncode=(15&w)+4,w>>>=4,x-=4,286x;){if(0===l)break a;l--;w+=f[h++]<>>=3;x-=3}for(;19>d.have;)d.lens[fa[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,X={bits:d.lenbits},W=t(0,d.lens,0,19,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid code lengths set"; +d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have>>24,M=65535&S,!(E<=x);){if(0===l)break a;l--;w+=f[h++]<M)w>>>=E,x-=E,d.lens[d.have++]=M;else{if(16===M){for(C=E+2;x>>=E,x-=E,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}Q=d.lens[d.have-1];I=3+(3&w);w>>>=2;x-=2}else if(17===M){for(C=E+3;x>>=E;x-=E;Q=0;I=3+(7&w); +w>>>=3;x-=3}else{for(C=E+7;x>>=E;x-=E;Q=0;I=11+(127&w);w>>>=7;x-=7}if(d.have+I>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;I--;)d.lens[d.have++]=Q}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,X={bits:d.lenbits},W=t(1,d.lens,0,d.nlen,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn, +X={bits:d.distbits},W=t(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,X),d.distbits=X.bits,W){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=l&&258<=F){b.next_out=k;b.avail_out=F;b.next_in=h;b.avail_in=l;d.hold=w;d.bits=x;u(b,N);k=b.next_out;g=b.output;F=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;w=d.hold;x=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;S=d.lencode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0=== +l)break a;l--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===l)break a;l--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,d.length=M,0===C){d.mode=26;break}if(32&C){d.back=-1;d.mode=12;break}if(64&C){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&C;d.mode=22;case 22:if(d.extra){for(C=d.extra;x>>=d.extra; +x-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=23;case 23:for(;S=d.distcode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0===l)break a;l--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===l)break a;l--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,64&C){b.msg="invalid distance code";d.mode=30;break}d.offset=M;d.extra=15&C;d.mode=24;case 24:if(d.extra){for(C=d.extra;x>>=d.extra;x-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===F)break a;if(I=N-F,d.offset>I){if(I=d.offset-I,I>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}I>d.wnext?(I-=d.wnext,G=d.wsize-I):G=d.wnext-I;I>d.length&&(I=d.length);C=d.window}else C=g,G=k-d.offset,I=d.length;I>F&&(I=F);F-=I;d.length-=I;do g[k++]=C[G++];while(--I);0===d.length&& +(d.mode=21);break;case 26:if(0===F)break a;g[k++]=d.length;F--;d.mode=21;break;case 27:if(d.wrap){for(;32>x;){if(0===l)break a;l--;w|=f[h++]<x;){if(0===l)break a;l--;w+=f[h++]<d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,N-b.avail_out)?(d.mode=31,-4):(K-=b.avail_in,N-=b.avail_out,b.total_in+=K,b.total_out+=N,d.total+=N,d.wrap&&N&&(b.adler=d.check=d.flags?s(d.check,g,N,b.next_out-N):q(d.check,g,N,b.next_out-N)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode|| +15===d.mode?256:0),(0===K&&0===N||4===c)&&W===z&&(W=-5),W)};d.inflateEnd=function(b){if(!b||!b.state)return y;var c=b.state;return c.window&&(c.window=null),b.state=null,z};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?y:(d.head=c,c.done=!1,z)):y};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?y:11===d.mode&&(e=1,e=q(e,c,f,0),e!==d.check)?-3:m(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,z)):y};d.inflateInfo= "pako inflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(b,c,d){var e=b("../utils/common"),f=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],g=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],k=[16,16,16,16,17,17,18,18, 19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,p,r,q,s,u){var t,z,y,v,K,F,H,B;v=u.bits;for(var A=0,D=0,J=0,P=0,O=0,T=0,V=0,aa=t=0,w=0,x=null,ba=0,N=new e.Buf16(16),T=new e.Buf16(16),I=null,G=0,A=0;15>=A;A++)N[A]=0;for(D=0;DP&&(O=P),0===P)return r[q++]=20971520,r[q++]=20971520,u.bits=1,0;for(J=1;J=A;A++)if(t<<=1,t-=N[A],0>t)return-1;if(0A;A++)T[A+1]=T[A]+N[A];for(D=0;DK?(H=I[G+s[D]],B=x[ba+s[D]]):(H=96,B=0);t=1<>V)+z]=F<<24|H<<16|B|0;while(0!==z);for(t=1<>=1;if(0!==t?(w&=t-1,w+=t):w=0,D++,0===--N[A]){if(A===P)break;A=c[d+ s[D]]}if(A>O&&(w&p)!==y){0===V&&(V=O);v+=J;T=A-V;for(t=1<=t));)T++,t<<=1;if(aa+=1<>>8&255}function k(b,c,d){b.bi_valid>aa-d?(b.bi_buf|=c<>aa-b.bi_valid,b.bi_valid+=d-aa):(b.bi_buf|=c<>>=1,d<<=1;while(0<--c);return d>>>1}function n(b,c,d){var e,f=Array(V+1),g=0;for(e=1;e<=V;e++)f[e]=g=g+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=l(f[e]++,e))}function p(b){var c;for(c=0;ce?$[e]:$[256+(e>>>7)],m(b,g,d),h=G[g],0!==h&&(e-=W[g],k(b,e,h)));while(lb.heap_len;)f=b.heap[++b.heap_len]=2>m?++m:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,h&&(b.static_len-=e[2*f+1]);c.max_code=m;for(d=b.heap_len>>1;1<=d;d--)s(b,g,d);f=k;do d=b.heap[1], -b.heap[1]=b.heap[b.heap_len--],s(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,s(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var l,p,h=c.dyn_tree,k=c.max_code,G=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,C=c.stat_desc.extra_base,E=c.stat_desc.max_length,t=0;for(e=0;e<=V;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d= -b.heap_max+1;dE&&(e=E,t++),h[2*f+1]=e,f>k||(b.bl_count[e]++,l=0,f>=C&&(l=r[f-C]),p=h[2*f],b.opt_len+=p*(e+l),q&&(b.static_len+=p*(G[2*f+1]+l)));if(0!==t){do{for(e=E-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[E]--;t-=2}while(0k||(h[2*l+1]!==e&&(b.opt_len+=(e-h[2*l+1])*h[2*l],h[2*l+1]=e),f--)}n(g,m,b.bl_count)}function z(b,c,d){var e,f,g=-1,h=c[1],k=0,m=7,l=4;0===h&& -(m=138,l=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,h=c[2*(e+1)+1],++k=k?b.bl_tree[2*ba]++:b.bl_tree[2*N]++,k=0,g=f,0===h?(m=138,l=3):f===h?(m=6,l=3):(m=7,l=4))}function y(b,c,d){var e,f,g=-1,h=c[1],l=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++l=l?(m(b,ba,b.bl_tree), -k(b,l-3,3)):(m(b,N,b.bl_tree),k(b,l-11,7));l=0;g=f;0===h?(n=138,p=3):f===h?(n=6,p=3):(n=7,p=4)}}function v(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return H;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return B;for(c=32;c>>8&255}function k(b,c,d){b.bi_valid>aa-d?(b.bi_buf|=c<>aa-b.bi_valid,b.bi_valid+=d-aa):(b.bi_buf|=c<>>=1,d<<=1;while(0<--c);return d>>>1}function n(b,c,d){var e,f=Array(V+1),g=0;for(e=1;e<=V;e++)f[e]=g=g+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=m(f[e]++,e))}function p(b){var c;for(c=0;ce?$[e]:$[256+(e>>>7)],l(b,g,d),h=G[g],0!==h&&(e-=W[g],k(b,e,h)));while(mb.heap_len;)f=b.heap[++b.heap_len]=2>l?++l:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,h&&(b.static_len-=e[2*f+1]);c.max_code=l;for(d=b.heap_len>>1;1<=d;d--)s(b,g,d);f=k;do d=b.heap[1], +b.heap[1]=b.heap[b.heap_len--],s(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,s(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,p,h=c.dyn_tree,k=c.max_code,G=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,C=c.stat_desc.extra_base,E=c.stat_desc.max_length,t=0;for(e=0;e<=V;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d= +b.heap_max+1;dE&&(e=E,t++),h[2*f+1]=e,f>k||(b.bl_count[e]++,m=0,f>=C&&(m=r[f-C]),p=h[2*f],b.opt_len+=p*(e+m),q&&(b.static_len+=p*(G[2*f+1]+m)));if(0!==t){do{for(e=E-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[E]--;t-=2}while(0k||(h[2*m+1]!==e&&(b.opt_len+=(e-h[2*m+1])*h[2*m],h[2*m+1]=e),f--)}n(g,l,b.bl_count)}function z(b,c,d){var e,f,g=-1,h=c[1],k=0,l=7,m=4;0===h&& +(l=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,h=c[2*(e+1)+1],++k=k?b.bl_tree[2*ba]++:b.bl_tree[2*N]++,k=0,g=f,0===h?(l=138,m=3):f===h?(l=6,m=3):(l=7,m=4))}function y(b,c,d){var e,f,g=-1,h=c[1],m=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++m=m?(l(b,ba,b.bl_tree), +k(b,m-3,3)):(l(b,N,b.bl_tree),k(b,m-11,7));m=0;g=f;0===h?(n=138,p=3):f===h?(n=6,p=3):(n=7,p=4)}}function v(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return H;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return B;for(c=32;ce;e++){Q[e]= -d;for(c=0;c<1<e;e++){W[e]=d;for(c=0;c<1<>=7;e=c;)M[2*c+1]=8,c++,h[8]++;for(;255>=c;)M[2*c+1]=9,c++,h[9]++;for(;279>=c;)M[2*c+1]=7,c++,h[7]++;for(;287>=c;)M[2*c+1]=8,c++,h[8]++;n(M,J+1,h);for(c=0;ce;e++){W[e]=d;for(c=0;c<1<>=7;e=c;)M[2*c+1]=8,c++,h[8]++;for(;255>=c;)M[2*c+1]=9,c++,h[9]++;for(;279>=c;)M[2*c+1]=7,c++,h[7]++;for(;287>=c;)M[2*c+1]=8,c++,h[8]++;n(M,J+1,h);for(c=0;c>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)K(b,c,d,e);else if(4===b.strategy||g=== f)k(b,2+(e?1:0),3),u(b,M,R);else{k(b,4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;h+=1;k(b,c-257,5);k(b,d-1,5);k(b,h-4,4);for(f=0;f>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,c--,b.dyn_ltree[2*(Y[d]+ -D+1)]++,b.dyn_dtree[2*(256>c?$[c]:$[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){k(b,2,3);m(b,w,M);16===b.bi_valid?(h(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":3}],15:[function(b,c,d){c.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler= +D+1)]++,b.dyn_dtree[2*(256>c?$[c]:$[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){k(b,2,3);l(b,w,M);16===b.bi_valid?(h(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":3}],15:[function(b,c,d){c.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler= 0}},{}],"/":[function(b,c,d){d=b("./lib/utils/common").assign;var e=b("./lib/deflate"),f=b("./lib/inflate");b=b("./lib/zlib/constants");var g={};d(g,e,f,b);c.exports=g},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")});var JSON;JSON||(JSON={}); (function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,r,q,s=f,u,t=d[a];t&&"object"===typeof t&&"function"===typeof t.toJSON&&(t=t.toJSON(a));"function"===typeof k&&(t=k.call(d,a,t));switch(typeof t){case "string":return b(t);case "number":return isFinite(t)?""+t:"null";case "boolean":case "null":return""+t; case "object":if(!t)return"null";f+=g;u=[];if("[object Array]"===Object.prototype.toString.apply(t)){q=t.length;for(e=0;enavigator.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:"5.7.0.8.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")&& 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/")|| @@ -237,15 +237,15 @@ b(e))},g)})(a[h],h);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;ce&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);l=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),z=Math.sin(f),r=-m*(l*z+d*t),q=-m*(c*z-n*t),u=s=0,p=[],y=0;ye&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;l=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),z=Math.sin(f),r=-l*(m*z+d*t),q=-l*(c*z-n*t),u=s=0,p=[],y=0;yc&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|= mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b}, reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0c.x&&(a=c.x,h=b.x);h>g&&(h=g);ah)return!1;var e=b.y,g=c.y,k=c.x-b.x;1E-7g&&(b=g,g=e,e=b);g>f&&(g=f);eg?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,h=a.y,k=b.x,m=b.y,e=e+k,f=f+m,c=c+ -g,d=d+h;return(eg)&&(fh)&&(ck)&&(dm)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0c.x&&(a=c.x,h=b.x);h>g&&(h=g);ah)return!1;var e=b.y,g=c.y,k=c.x-b.x;1E-7g&&(b=g,g=e,e=b);g>f&&(g=f);eg?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,h=a.y,k=b.x,l=b.y,e=e+k,f=f+l,c=c+ +g,d=d+h;return(eg)&&(fh)&&(ck)&&(dl)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"\x3d");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"\x3d"+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"\x3d"+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"\x3d"+c:a+e+b+"\x3d0";else{var f=a.indexOf(";",e),g="",g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f),g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"\x3d"+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c= 0,d=0;a==mxConstants.ALIGN_CENTER?c=-0.5:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_MIDDLE?d=-0.5:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var e=document.createElement("div");e.style.fontFamily=c;e.style.fontSize=Math.round(b)+"px";e.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+"px";e.style.position="absolute";e.style.visibility="hidden"; -e.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";e.style.zoom="1";null!=d?(e.style.width=d+"px",e.style.whiteSpace="normal"):e.style.whiteSpace="nowrap";e.innerHTML=a;document.body.appendChild(e);a=new mxRectangle(0,0,e.offsetWidth,e.offsetHeight);document.body.removeChild(e);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,h=f.isEventsEnabled();f.setEventsEnabled(!1);var k=f.drawPane,m=f.overlayPane; -a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var l=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate= -l,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=k,f.overlayPane=m,f.setEventsEnabled(h)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;c=b/d.height/(e/c);d=Math.sqrt(a);var f=Math.sqrt(c);c=d*f;d/=f;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)* +e.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";e.style.zoom="1";null!=d?(e.style.width=d+"px",e.style.whiteSpace="normal"):e.style.whiteSpace="nowrap";e.innerHTML=a;document.body.appendChild(e);a=new mxRectangle(0,0,e.offsetWidth,e.offsetHeight);document.body.removeChild(e);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,h=f.isEventsEnabled();f.setEventsEnabled(!1);var k=f.drawPane,l=f.overlayPane; +a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var m=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate= +m,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=k,f.overlayPane=l,f.setEventsEnabled(h)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;c=b/d.height/(e/c);d=Math.sqrt(a);var f=Math.sqrt(c);c=d*f;d/=f;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)* Math.ceil(d);for(f=0;g>a;){var g=Math.floor(c)/c,h=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==h&&(h=Math.floor(d-1)/d);g=g>h?g:h;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10e.x+(document.body.clientWidth||f.clientWidth))b.div.style.left=a.div.offsetLeft-d+(mxClient.IS_IE?6:-6)+"px";mxUtils.fit(b.div)}}; mxPopupMenu.prototype.addSeparator=function(a,b){a=a||this;if(this.smartSeparators&&!b)a.willAddSeparator=!0;else if(null!=a.tbody){a.willAddSeparator=!1;var c=document.createElement("tr"),d=document.createElement("td");d.className="mxPopupMenuIcon";d.style.padding="0 0 0 0px";c.appendChild(d);d=document.createElement("td");d.style.padding="0 0 0 0px";d.setAttribute("colSpan","2");var e=document.createElement("hr");e.setAttribute("size","1");d.appendChild(e);c.appendChild(d);a.tbody.appendChild(c)}}; @@ -361,10 +361,10 @@ mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSv mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0c?";stop-opacity:"+c:"";e=this.createElement("stop"); e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f}; mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0k.alpha||1>k.fillAlpha)&&m.setAttribute("opacity",k.alpha*k.fillAlpha);e=this.state.transform||"";if(g||h){var l=f=1,n=0,p=0;g&&(f=-1,n=-c-2*a);h&&(l=-1,p=-d-2*b);e+="scale("+f+","+l+")translate("+n*k.scale+","+p*k.scale+")"}0k.alpha||1>k.fillAlpha)&&l.setAttribute("opacity",k.alpha*k.fillAlpha);e=this.state.transform||"";if(g||h){var m=f=1,n=0,p=0;g&&(f=-1,n=-c-2*a);h&&(m=-1,p=-d-2*b);e+="scale("+f+","+m+")translate("+n*k.scale+","+p*k.scale+")"}0/g,"\x26gt;");a=b.value.replace(/&/g,"\x26amp;").replace(/&lt;/g, "\x26lt;").replace(/&gt;/g,"\x26gt;").replace(/&amp;/g,"\x26amp;").replace(/
/g,"\x3cbr /\x3e").replace(/
/g,"\x3chr /\x3e").replace(/(]+)>/gm,"$1 /\x3e")}return a}; @@ -391,29 +391,29 @@ mxSvgCanvas2D.prototype.createDiv=function(a,b,c,d,e){c=this.state;d="display:in mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d+="text-decoration:underline;");b==mxConstants.ALIGN_CENTER?d+="text-align:center;":b==mxConstants.ALIGN_RIGHT&&(d+="text-align:right;");b="";null!=c.fontBackgroundColor&&(b+="background-color:"+c.fontBackgroundColor+";");null!=c.fontBorderColor&&(b+="border:1px solid "+c.fontBorderColor+";");mxUtils.isNode(a)||(a=this.convertHtml(a),"fill"!=e&&"width"!=e?a='\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"display:inline-block;text-align:inherit;text-decoration:inherit;'+ b+'"\x3e'+a+"\x3c/div\x3e":d+=b);if(!mxClient.IS_IE&&document.createElementNS)return e=document.createElementNS("http://www.w3.org/1999/xhtml","div"),e.setAttribute("style",d),mxUtils.isNode(a)?this.root.ownerDocument!=document?e.appendChild(a.cloneNode(!0)):e.appendChild(a):e.innerHTML=a,e;mxUtils.isNode(a)&&this.root.ownerDocument!=document&&(a=a.outerHTML);return mxUtils.parseXml('\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"'+d+'"\x3e'+a+"\x3c/div\x3e").documentElement}; mxSvgCanvas2D.prototype.invalidateCachedOffsetSize=function(a){delete a.firstChild.mxCachedOffsetWidth;delete a.firstChild.mxCachedFinalOffsetWidth;delete a.firstChild.mxCachedFinalOffsetHeight}; -mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,h,k,m,l){if(null!=l&&null!=l.firstChild&&null!=l.firstChild.firstChild&&null!=l.firstChild.firstChild.firstChild){l=l.firstChild;var n=l.firstChild,p=n.firstChild;m=null!=m?m:0;var r=this.state;a+=r.dx;b+=r.dy;k?(p.style.maxHeight=Math.round(d)+"px",p.style.maxWidth=Math.round(c)+"px"):"fill"==h?(p.style.width=Math.round(c+1)+"px",p.style.height=Math.round(d+1)+"px"):"width"==h&&(p.style.width=Math.round(c+1)+"px",0r.alpha&&s.setAttribute("opacity",r.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");q=this.createDiv(e,f,g,q,m);if(null!=q){null!=p&&q.setAttribute("dir",p);s.appendChild(u);this.root.appendChild(s);var t=0,z=0;p=t=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y= +mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,h,k,l,m){if(null!=m&&null!=m.firstChild&&null!=m.firstChild.firstChild&&null!=m.firstChild.firstChild.firstChild){m=m.firstChild;var n=m.firstChild,p=n.firstChild;l=null!=l?l:0;var r=this.state;a+=r.dx;b+=r.dy;k?(p.style.maxHeight=Math.round(d)+"px",p.style.maxWidth=Math.round(c)+"px"):"fill"==h?(p.style.width=Math.round(c+1)+"px",p.style.height=Math.round(d+1)+"px"):"width"==h&&(p.style.width=Math.round(c+1)+"px",0r.alpha&&s.setAttribute("opacity",r.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");q=this.createDiv(e,f,g,q,l);if(null!=q){null!=p&&q.setAttribute("dir",p);s.appendChild(u);this.root.appendChild(s);var t=0,z=0;p=t=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y= document.createElement("div");y.style.cssText=q.getAttribute("style");y.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";y.style.position="absolute";y.style.visibility="hidden";z=document.createElement("div");z.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";z.style.wordWrap=mxConstants.WORD_WRAP;z.innerHTML=mxUtils.isNode(e)?e.outerHTML:e;y.appendChild(z);document.body.appendChild(y);8!=document.documentMode&&(9!=document.documentMode&&null!=r.fontBorderColor)&&(t+=2,p+=2);if(h&& -0r.alpha&&s.setAttribute("opacity",r.alpha);p=q=0;f==mxConstants.ALIGN_CENTER?q-=c/2:f==mxConstants.ALIGN_RIGHT&&(q-=c);a+=q;g==mxConstants.ALIGN_MIDDLE? -p-=d/2:g==mxConstants.ALIGN_BOTTOM&&(p-=d);"fill"!=m&&(mxClient.IS_FF&&mxClient.IS_WIN)&&(p-=2);b+=p;y=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(y+="rotate("+r.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*r.scale,(b+d/2)*r.scale,r.rotation,r.rotationCx,r.rotationCy),a=b.x-c*r.scale/2,b=b.y-d*r.scale/2):(a*=r.scale,b*=r.scale);0!=n&&(y+="rotate("+n+","+-q+","+-p+")");s.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+ -")"+y);u.setAttribute("width",Math.round(Math.max(1,c)));u.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,b,c,d,e,f,g,h,k,m,l,n),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(u),c.appendChild(a),s.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,h,m,l,n,p)}}; +0r.alpha&&s.setAttribute("opacity",r.alpha);p=q=0;f==mxConstants.ALIGN_CENTER?q-=c/2:f==mxConstants.ALIGN_RIGHT&&(q-=c);a+=q;g==mxConstants.ALIGN_MIDDLE? +p-=d/2:g==mxConstants.ALIGN_BOTTOM&&(p-=d);"fill"!=l&&(mxClient.IS_FF&&mxClient.IS_WIN)&&(p-=2);b+=p;y=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(y+="rotate("+r.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*r.scale,(b+d/2)*r.scale,r.rotation,r.rotationCx,r.rotationCy),a=b.x-c*r.scale/2,b=b.y-d*r.scale/2):(a*=r.scale,b*=r.scale);0!=n&&(y+="rotate("+n+","+-q+","+-p+")");s.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+ +")"+y);u.setAttribute("width",Math.round(Math.max(1,c)));u.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,b,c,d,e,f,g,h,k,l,m,n),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(u),c.appendChild(a),s.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,h,l,m,n,p)}}; mxSvgCanvas2D.prototype.createClip=function(a,b,c,d){a=Math.round(a);b=Math.round(b);c=Math.round(c);d=Math.round(d);for(var e="mx-clip-"+a+"-"+b+"-"+c+"-"+d,f=0,g=e+"-"+f;null!=document.getElementById(g);)g=e+"-"+ ++f;clip=this.createElement("clipPath");clip.setAttribute("id",g);e=this.createElement("rect");e.setAttribute("x",a);e.setAttribute("y",b);e.setAttribute("width",c);e.setAttribute("height",d);clip.appendChild(e);return clip}; -mxSvgCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,h,k,m,l,n){l=null!=l?l:0;h=this.state;var p=h.fontSize,r=this.createElement("g"),q=h.transform||"";this.updateFont(r);0!=l&&(q+="rotate("+l+","+this.format(a*h.scale)+","+this.format(b*h.scale)+")");null!=n&&r.setAttribute("direction",n);m&&(0h.alpha&&r.setAttribute("opacity",h.alpha);q=e.split("\n");n=Math.round(p*mxConstants.LINE_HEIGHT);var s=p+(q.length-1)*n;l=b+p-1;g==mxConstants.ALIGN_MIDDLE?"fill"==k?l-=d/2:(m=(this.matchHtmlAlignment&&m&&0h.alpha&&r.setAttribute("opacity",h.alpha);q=e.split("\n");n=Math.round(p*mxConstants.LINE_HEIGHT);var s=p+(q.length-1)*n;m=b+p-1;g==mxConstants.ALIGN_MIDDLE?"fill"==k?m-=d/2:(l=(this.matchHtmlAlignment&&l&&0t&&(t+=2*Math.PI);t%=Math.PI;t>Math.PI/2&&(t=Math.PI-t);g=Math.cos(t);var z=Math.sin(t);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",q.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);q=e;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);t=q.offsetWidth+3;q=q.offsetHeight;l?(c=Math.min(c,t), -q=Math.min(q,d)):c=t;h&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(l||"width"==m)&&q>d)q=d,e.style.height=q+"px";d=q;l=(d-d*g+c*-z)/2-p*c*(u+0.5)+n*d*(s+0.5);h=(c-c*g+d*-z)/2+n*c*(u+0.5)+p*d*(s+0.5);"group"==k.nodeName&&"DIV"==this.root.nodeName?(m=this.createElement("div"),m.style.display="inline-block",m.style.position="absolute",m.style.left=this.format(a+(h-c/2)*r.scale)+"px",m.style.top=this.format(b+(l-d/2)*r.scale)+"px",k.parentNode.appendChild(m),m.appendChild(k)):(r=8==document.documentMode&& -!mxClient.IS_EM?1:r.scale,k.style.left=this.format(a+(h-c/2)*r)+"px",k.style.top=this.format(b+(l-d/2)*r)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+n+", M12\x3d"+p+", M21\x3d"+-p+", M22\x3d"+n+", sizingMethod\x3d'auto expand')";f.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(f.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");f.appendChild(e);e.style.position="";e.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(e.style.verticalAlign= -"top",1>this.state.alpha&&(k.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,q=e.offsetHeight,mxClient.IS_QUIRKS&&(l&&q>d)&&(q=d,e.style.height=q+"px"),d=q,e.style.visibility="",r.appendChild(e),k.style.left=this.format(a+c*u*this.state.scale)+"px",k.style.top=this.format(b+d*s*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),q.style.left=100* -u+"%",q.style.top=100*s+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,h,k,m,l,n,p)}}; -mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,h,k,m,l,n,p){h=this.state;a=(a+h.dx)*h.scale;b=(b+h.dy)*h.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=h.fontColor;d.opacity=100*h.alpha+"%";c.appendChild(d);d=this.createVmlElement("path");d.textpathok="true";d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0);c.appendChild(d);d=this.createVmlElement("textpath");d.style.cssText= +"false",p.appendChild(k),this.root.appendChild(p)):this.root.appendChild(k);m?(e.style.overflow="hidden",e.style.width=Math.round(c)+"px",mxClient.IS_QUIRKS||(e.style.maxHeight=Math.round(d)+"px")):"fill"==l?(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.height=Math.max(0,d)+1+"px"):"width"==l&&(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.maxHeight=Math.max(0,d)+1+"px");if(this.rotateHtml&&0!=n){t=n*(Math.PI/180);n=parseFloat(parseFloat(Math.cos(t)).toFixed(8)); +p=parseFloat(parseFloat(Math.sin(-t)).toFixed(8));t%=2*Math.PI;0>t&&(t+=2*Math.PI);t%=Math.PI;t>Math.PI/2&&(t=Math.PI-t);g=Math.cos(t);var z=Math.sin(t);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",q.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);q=e;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);t=q.offsetWidth+3;q=q.offsetHeight;m?(c=Math.min(c,t), +q=Math.min(q,d)):c=t;h&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(m||"width"==l)&&q>d)q=d,e.style.height=q+"px";d=q;m=(d-d*g+c*-z)/2-p*c*(u+0.5)+n*d*(s+0.5);h=(c-c*g+d*-z)/2+n*c*(u+0.5)+p*d*(s+0.5);"group"==k.nodeName&&"DIV"==this.root.nodeName?(l=this.createElement("div"),l.style.display="inline-block",l.style.position="absolute",l.style.left=this.format(a+(h-c/2)*r.scale)+"px",l.style.top=this.format(b+(m-d/2)*r.scale)+"px",k.parentNode.appendChild(l),l.appendChild(k)):(r=8==document.documentMode&& +!mxClient.IS_EM?1:r.scale,k.style.left=this.format(a+(h-c/2)*r)+"px",k.style.top=this.format(b+(m-d/2)*r)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+n+", M12\x3d"+p+", M21\x3d"+-p+", M22\x3d"+n+", sizingMethod\x3d'auto expand')";f.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(f.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");f.appendChild(e);e.style.position="";e.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(e.style.verticalAlign= +"top",1>this.state.alpha&&(k.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,q=e.offsetHeight,mxClient.IS_QUIRKS&&(m&&q>d)&&(q=d,e.style.height=q+"px"),d=q,e.style.visibility="",r.appendChild(e),k.style.left=this.format(a+c*u*this.state.scale)+"px",k.style.top=this.format(b+d*s*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),q.style.left=100* +u+"%",q.style.top=100*s+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,h,k,l,m,n,p)}}; +mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,h,k,l,m,n,p){h=this.state;a=(a+h.dx)*h.scale;b=(b+h.dy)*h.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=h.fontColor;d.opacity=100*h.alpha+"%";c.appendChild(d);d=this.createVmlElement("path");d.textpathok="true";d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0);c.appendChild(d);d=this.createVmlElement("textpath");d.style.cssText= "v-text-align:"+f;d.style.align=f;d.style.fontFamily=h.fontFamily;d.string=e;d.on="true";f=h.fontSize*h.scale/this.vmlScale;d.style.fontSize=f+"px";(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold");(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic");(h.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline");e=e.split("\n");h=f+(e.length-1)*f*mxConstants.LINE_HEIGHT;f=e=0; g==mxConstants.ALIGN_BOTTOM?f=-h/2:g!=mxConstants.ALIGN_MIDDLE&&(f=h/2);null!=n&&(c.style.rotation=n,g=n*(Math.PI/180),e=Math.sin(g)*f,f*=Math.cos(g));c.appendChild(d);c.style.left=this.format(a-e)+"px";c.style.top=this.format(b+f)+"px";this.root.appendChild(c)};mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)}; function mxStencil(a){this.desc=a;this.parseDescription();this.parseConstraints()}mxStencil.defaultLocalized=!1;mxStencil.allowEval=!1;mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.prototype.aspect=null;mxStencil.prototype.w0=null;mxStencil.prototype.h0=null;mxStencil.prototype.bgNode=null;mxStencil.prototype.fgNode=null;mxStencil.prototype.strokewidth=null; @@ -452,14 +452,14 @@ mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribu mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),h=Math.min(g.width,g.height),h="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;a.setStrokeWidth(h);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0)}; mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,h,k){if(null!=g&&0=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform(),this.updateBoundingBox();else{var a=this.createCanvas(); null!=a&&null!=a.updateText&&null!=a.invalidateCachedOffsetSize?(this.paint(a,!0),this.destroyCanvas(a),this.updateBoundingBox()):mxShape.prototype.redraw.apply(this,arguments)}else mxShape.prototype.redraw.apply(this,arguments),mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML?this.lastValue=this.value:this.lastValue=null}; mxText.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.color="black";this.valign=this.align="";this.family=mxConstants.DEFAULT_FONTFAMILY;this.size=mxConstants.DEFAULT_FONTSIZE;this.fontStyle=mxConstants.DEFAULT_FONTSTYLE;this.spacing=2;this.spacingLeft=this.spacingBottom=this.spacingRight=this.spacingTop=0;this.horizontal=!0;delete this.background;delete this.border;this.textDirection=mxConstants.DEFAULT_TEXT_DIRECTION;delete this.margin}; @@ -558,8 +558,8 @@ mxText.prototype.updateInnerHtml=function(a){if(mxUtils.isNode(this.value))a.inn mxText.prototype.updateHtmlFilter=function(){var a=this.node.style,b=this.margin.x,c=this.margin.y,d=this.scale;mxUtils.setOpacity(this.node,this.opacity);var e=0,f=0,g=null!=this.state?this.state.view.textDiv:null,h=this.node;if(null!=g){g.style.overflow="";g.style.height="";g.style.width="";this.updateFont(g);this.updateSize(g,!1);this.updateInnerHtml(g);var k=Math.round(this.bounds.width/this.scale);this.wrap&&0m&&(m+=2*Math.PI);m%=Math.PI;m>Math.PI/2&&(m=Math.PI-m);var h=Math.cos(m),l=Math.sin(-m),b=k*-(b+0.5),n=g*-(c+0.5),p=(g-g*h+k*l)/2+f*b-e*n;0!=m&&(c="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+e+", M12\x3d"+f+", M21\x3d"+-f+", M22\x3d"+e+", sizingMethod\x3d'auto expand')",a.filter=null!=a.filter&&0l&&(l+=2*Math.PI);l%=Math.PI;l>Math.PI/2&&(l=Math.PI-l);var h=Math.cos(l),m=Math.sin(-l),b=k*-(b+0.5),n=g*-(c+0.5),p=(g-g*h+k*m)/2+f*b-e*n;0!=l&&(c="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+e+", M12\x3d"+f+", M21\x3d"+-f+", M22\x3d"+e+", sizingMethod\x3d'auto expand')",a.filter=null!=a.filter&&0b)break;h=c}f=e.getIndex(a);f=Math.max(0,g-(g>f?1:0));d.add(e,a,f)}}; mxStackLayout.prototype.getParentSize=function(a){var b=this.graph.getModel(),c=b.getGeometry(a);if(null!=this.graph.container&&(null==c&&b.isLayer(a)||a==this.graph.getView().currentRoot))c=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1);return c}; mxStackLayout.prototype.execute=function(a){if(null!=a){var b=this.getParentSize(a),c=this.isHorizontal(),d=this.graph.getModel(),e=null;null!=b&&(e=c?b.height-this.marginTop-this.marginBottom:b.width-this.marginLeft-this.marginRight);var e=e-(2*this.spacing+2*this.border),f=this.x0+this.border+this.marginLeft,g=this.y0+this.border+this.marginTop;if(this.graph.isSwimlane(a)){var h=this.graph.getCellStyle(a),k=mxUtils.getNumber(h,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),h=1==mxUtils.getValue(h, -mxConstants.STYLE_HORIZONTAL,!0);null!=b&&(k=h?Math.min(k,b.height):Math.min(k,b.width));c==h&&(e-=k);h?g+=k:f+=k}d.beginUpdate();try{for(var k=0,h=null,m=0,l=null,n=d.getChildCount(a),p=0;pthis.wrap||!c&&h.y+h.height+q.height+2*this.spacing>this.wrap))h=null,c?g+=k+this.spacing:f+=k+this.spacing,k= -0;var k=Math.max(k,c?q.height:q.width),s=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(r),s=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=h?c?q.x=m+this.spacing+Math.floor(s/2):q.y=m+this.spacing+Math.floor(s/2):this.keepFirstLocation||(c?q.x=f:q.y=g);c?q.y=g:q.x=f;this.fill&&null!=e&&(c?q.height=e:q.width=e);this.setChildGeometry(r,q);l=r;h=q;m=c?h.x+h.width+Math.floor(s/2):h.y+h.height+Math.floor(s/2)}}}this.resizeParent&&null!=b&&null!=h&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a, -b,h):this.resizeLast&&(null!=b&&null!=h&&null!=l)&&(c?h.width=b.width-h.x-this.spacing-this.marginRight-this.marginLeft:h.height=b.height-h.y-this.spacing-this.marginBottom,this.setChildGeometry(l,h))}finally{d.endUpdate()}}};mxStackLayout.prototype.setChildGeometry=function(a,b){var c=this.graph.getCellGeometry(a);(null==c||b.x!=c.x||b.y!=c.y||b.width!=c.width||b.height!=c.height)&&this.graph.getModel().setGeometry(a,b)}; +mxConstants.STYLE_HORIZONTAL,!0);null!=b&&(k=h?Math.min(k,b.height):Math.min(k,b.width));c==h&&(e-=k);h?g+=k:f+=k}d.beginUpdate();try{for(var k=0,h=null,l=0,m=null,n=d.getChildCount(a),p=0;pthis.wrap||!c&&h.y+h.height+q.height+2*this.spacing>this.wrap))h=null,c?g+=k+this.spacing:f+=k+this.spacing,k= +0;var k=Math.max(k,c?q.height:q.width),s=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(r),s=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=h?c?q.x=l+this.spacing+Math.floor(s/2):q.y=l+this.spacing+Math.floor(s/2):this.keepFirstLocation||(c?q.x=f:q.y=g);c?q.y=g:q.x=f;this.fill&&null!=e&&(c?q.height=e:q.width=e);this.setChildGeometry(r,q);m=r;h=q;l=c?h.x+h.width+Math.floor(s/2):h.y+h.height+Math.floor(s/2)}}}this.resizeParent&&null!=b&&null!=h&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a, +b,h):this.resizeLast&&(null!=b&&null!=h&&null!=m)&&(c?h.width=b.width-h.x-this.spacing-this.marginRight-this.marginLeft:h.height=b.height-h.y-this.spacing-this.marginBottom,this.setChildGeometry(m,h))}finally{d.endUpdate()}}};mxStackLayout.prototype.setChildGeometry=function(a,b){var c=this.graph.getCellGeometry(a);(null==c||b.x!=c.x||b.y!=c.y||b.width!=c.width||b.height!=c.height)&&this.graph.getModel().setGeometry(a,b)}; mxStackLayout.prototype.updateParentGeometry=function(a,b,c){var d=this.isHorizontal(),e=this.graph.getModel(),f=b.clone();d?(c=c.x+c.width+this.spacing+this.marginRight,f.width=this.resizeParentMax?Math.max(f.width,c):c):(c=c.y+c.height+this.spacing+this.marginBottom,f.height=this.resizeParentMax?Math.max(f.height,c):c);(b.x!=f.x||b.y!=f.y||b.width!=f.width||b.height!=f.height)&&e.setGeometry(a,f)}; function mxPartitionLayout(a,b,c,d){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.spacing=c||0;this.border=d||0}mxPartitionLayout.prototype=new mxGraphLayout;mxPartitionLayout.prototype.constructor=mxPartitionLayout;mxPartitionLayout.prototype.horizontal=null;mxPartitionLayout.prototype.spacing=null;mxPartitionLayout.prototype.border=null;mxPartitionLayout.prototype.resizeVertices=!0;mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal}; mxPartitionLayout.prototype.moveCell=function(a,b,c){c=this.graph.getModel();var d=c.getParent(a);if(null!=a&&null!=d){for(var e=0,f=0,g=c.getChildCount(d),e=0;eb)break;f=h}}b=d.getIndex(a);b=Math.max(0,e-(e>b?1:0));c.add(d,a,b)}}; -mxPartitionLayout.prototype.execute=function(a){var b=this.isHorizontal(),c=this.graph.getModel(),d=c.getGeometry(a);if(null!=this.graph.container&&(null==d&&c.isLayer(a)||a==this.graph.getView().currentRoot))d=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1);if(null!=d){for(var e=[],f=c.getChildCount(a),g=0;ga.height&&(a.height=this.maxRankHeight[b]);for(var c=a.child;null!=c;)this.setCellHeights(c,b+1),c=c.next}; mxCompactTreeLayout.prototype.dfs=function(a,b){var c=mxCellPath.create(a),d=null;if(null!=a&&null==this.visited[c]&&!this.isVertexIgnored(a)){this.visited[c]=a;var d=this.createNode(a),c=this.graph.getModel(),e=null,f=this.graph.getEdges(a,b,this.invert,!this.invert,!1,!0),g=this.graph.getView();this.sortEdges&&this.sortOutgoingEdges(a,f);for(var h=0;hg+2*this.prefHozEdgeSep&&(f-=2*this.prefHozEdgeSep);a=f/d;b=a/2;f>g+2*this.prefHozEdgeSep&&(b+=this.prefHozEdgeSep);for(var f=this.minEdgeJetty-this.prefVertEdgeOff,g=0,h=this.getVertexBounds(c),k=0;kd/2&&(f-=this.prefVertEdgeOff);b+=a;g=Math.max(g,f)}}; +mxCompactTreeLayout.prototype.processNodeOutgoing=function(a){for(var b=a.child,c=a.cell,d=0,e=[];null!=b;){d++;var f=b.x;this.horizontal&&(f=b.y);e.push(new WeightedCellSorter(b,f));b=b.next}e.sort(WeightedCellSorter.prototype.compare);var f=a.width,g=(d+1)*this.prefHozEdgeSep;f>g+2*this.prefHozEdgeSep&&(f-=2*this.prefHozEdgeSep);a=f/d;b=a/2;f>g+2*this.prefHozEdgeSep&&(b+=this.prefHozEdgeSep);for(var f=this.minEdgeJetty-this.prefVertEdgeOff,g=0,h=this.getVertexBounds(c),k=0;kd/2&&(f-=this.prefVertEdgeOff);b+=a;g=Math.max(g,f)}}; function WeightedCellSorter(a,b){this.cell=a;this.weightedValue=b}WeightedCellSorter.prototype.weightedValue=0;WeightedCellSorter.prototype.nudge=!1;WeightedCellSorter.prototype.visited=!1;WeightedCellSorter.prototype.rankIndex=null;WeightedCellSorter.prototype.cell=null;WeightedCellSorter.prototype.compare=function(a,b){return null!=a&&null!=b?b.weightedValue>a.weightedValue?1:b.weightedValued.theta&&ethis.forceConstant&&(this.forceConstant= -0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;db&&(b=0.001);var c=this.dispX[a]/b*Math.min(b,this.temperature),b=this.dispY[a]/b*Math.min(b,this.temperature);this.dispX[a]=0;this.dispY[a]=0;this.cellLocation[a][0]+=c;this.cellLocation[a][1]+=b}}; mxFastOrganicLayout.prototype.calcAttraction=function(){for(var a=0;athis.maxDistanceLimit||(ga?a+"-"+c:c+"-"+a):null}; mxParallelEdgeLayout.prototype.layout=function(a){var b=a[0],c=this.graph.getView(),d=this.graph.getModel(),e=d.getGeometry(c.getVisibleTerminal(b,!0)),d=d.getGeometry(c.getVisibleTerminal(b,!1));if(e==d)for(var b=e.x+e.width+this.spacing,c=e.y+e.height/2,f=0;fmxUtils.indexOf(k.connectsAsTarget,g)&&k.connectsAsTarget.push(g))}}c[d].temp[0]=1}}mxGraphHierarchyModel.prototype.maxRank=null;mxGraphHierarchyModel.prototype.vertexMapper=null;mxGraphHierarchyModel.prototype.edgeMapper=null;mxGraphHierarchyModel.prototype.ranks=null;mxGraphHierarchyModel.prototype.roots=null;mxGraphHierarchyModel.prototype.parent=null; mxGraphHierarchyModel.prototype.dfsCount=0;mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1E8;mxGraphHierarchyModel.prototype.tightenToSource=!1; mxGraphHierarchyModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=0;e=k.length){for(var h= -new mxGraphHierarchyEdge(k),m=0;mmxUtils.indexOf(c[e].connectsAsSource,h)&&c[e].connectsAsSource.push(h)}}}c[e].temp[0]=0}}; -mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;bc.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1mxUtils.indexOf(c[e].connectsAsSource,h)&&c[e].connectsAsSource.push(h)}}}c[e].temp[0]=0}}; +mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;bc.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1mxUtils.indexOf(k.connectsAsTarget,g)&&k.connectsAsTarget.push(g))}}c[d].temp[0]=1}}mxSwimlaneModel.prototype.maxRank=null;mxSwimlaneModel.prototype.vertexMapper=null;mxSwimlaneModel.prototype.edgeMapper=null;mxSwimlaneModel.prototype.ranks=null;mxSwimlaneModel.prototype.roots=null;mxSwimlaneModel.prototype.parent=null;mxSwimlaneModel.prototype.dfsCount=0; mxSwimlaneModel.prototype.SOURCESCANSTARTRANK=1E8;mxGraphHierarchyModel.prototype.tightenToSource=!1;mxSwimlaneModel.prototype.ranksPerGroup=null; -mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f=m.length){for(var k=new mxGraphHierarchyEdge(m),l=0;lmxUtils.indexOf(c[f].connectsAsSource,k)&&c[f].connectsAsSource.push(k)}}}c[f].temp[0]=0}}; +mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f=l.length){for(var k=new mxGraphHierarchyEdge(l),m=0;mmxUtils.indexOf(c[f].connectsAsSource,k)&&c[f].connectsAsSource.push(k)}}}c[f].temp[0]=0}}; mxSwimlaneModel.prototype.initialRank=function(){this.ranksPerGroup=[];var a=[],b={};if(null!=this.roots)for(var c=0;cb[d.swimlaneIndex]&&(h=b[d.swimlaneIndex]);d.temp[0]=h;if(null!=f)for(c=0;cc.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1c.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1>1,++e[k]}return c}; -mxMedianHybridCrossingReduction.prototype.transpose=function(a,b){for(var c=!0,d=0;c&&10>d++;)for(var e=1==a%2&&1==d%2,c=!1,f=0;fl&&(l=k);h[l]=m}for(var n=l=m=null,p=null,r=null,q=null,s=null,u=null,t=null,z=null,k=0;ks[F]&&v++,r[y]u[F]&&v++,q[y]d++;)for(var e=1==a%2&&1==d%2,c=!1,f=0;fm&&(m=k);h[m]=l}for(var n=m=l=null,p=null,r=null,q=null,s=null,u=null,t=null,z=null,k=0;ks[F]&&v++,r[y]u[F]&&v++,q[y]a.medianValue?-1:b.medianValueu+1&&(m==d[k].length-1?(e.setGeneralPurposeVariable(k,t),n=!0):(m=d[k][m+1],u=m.getGeneralPurposeVariable(k),u=u-m.width/2-this.intraCellSpacing-e.width/2,u>t?(e.setGeneralPurposeVariable(k, -t),n=!0):u>e.getGeneralPurposeVariable(k)+1&&(e.setGeneralPurposeVariable(k,u),n=!0)));if(n){for(e=0;eu+1&&(l==d[k].length-1?(e.setGeneralPurposeVariable(k,t),n=!0):(l=d[k][l+1],u=l.getGeneralPurposeVariable(k),u=u-l.width/2-this.intraCellSpacing-e.width/2,u>t?(e.setGeneralPurposeVariable(k, +t),n=!0):u>e.getGeneralPurposeVariable(k)+1&&(e.setGeneralPurposeVariable(k,u),n=!0)));if(n){for(e=0;e=h&&k<=p?g.setGeneralPurposeVariable(a,k):kp&&(g.setGeneralPurposeVariable(a,p),this.currentXDelta+=k-p);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d=h&&k<=p?g.setGeneralPurposeVariable(a,k):kp&&(g.setGeneralPurposeVariable(a,p),this.currentXDelta+=k-p);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;dthis.widestRankValue&&(this.widestRankValue=h,this.widestRank=e);this.rankWidths[e]=h}!0==k&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;h=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+h:c- -h;for(m=0;me.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,h=0,k=e.minRank+2;ke.minRank+1;k--)p=e.getX(k-1),n==p?(l[k-e.minRank-2]=n,g++):this.repositionValid(b,e,k-1,n)?(l[k-e.minRank-2]=n,g++):(l[k-e.minRank-2]=e.getX(k-1),n=p);if(g>h||f>h)if(g>=f)for(k=e.maxRank-2;k>e.minRank;k--)e.setX(k,l[k-e.minRank-1]);else if(f>g)for(k=e.minRank+2;kthis.widestRankValue&&(this.widestRankValue=h,this.widestRank=e);this.rankWidths[e]=h}!0==k&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;h=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+h:c- +h;for(l=0;le.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,h=0,k=e.minRank+2;ke.minRank+1;k--)p=e.getX(k-1),n==p?(m[k-e.minRank-2]=n,g++):this.repositionValid(b,e,k-1,n)?(m[k-e.minRank-2]=n,g++):(m[k-e.minRank-2]=e.getX(k-1),n=p);if(g>h||f>h)if(g>=f)for(k=e.maxRank-2;k>e.minRank;k--)e.setX(k,m[k-e.minRank-1]);else if(f>g)for(k=e.minRank+2;ke)return!1;f=b.getGeneralPurposeVariable(c);if(df){if(e==a.length-1)return!0;a=a[e+1];c=a.getGeneralPurposeVariable(c);c=c-a.width/2-this.intraCellSpacing-b.width/2;if(!(c>=d))return!1}return!0}; mxCoordinateAssignment.prototype.setCellLocations=function(a,b){this.rankTopY=[];this.rankBottomY=[];for(var c=0;ch;h++){if(-1(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(l+=this.prefHozEdgeSep,n-=this.prefHozEdgeSep);k=(n-l)/f;l+=k/2;n=this.minEdgeJetty-this.prefVertEdgeOff;for(m=p=0;mf/2&&(n-=this.prefVertEdgeOff);for(s=0;sh;h++){if(-1(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(m+=this.prefHozEdgeSep,n-=this.prefHozEdgeSep);k=(n-m)/f;m+=k/2;n=this.minEdgeJetty-this.prefVertEdgeOff;for(l=p=0;lf/2&&(n-=this.prefVertEdgeOff);for(s=0;sa.weightedValue?-1:b.weightedValuef&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; +mxHierarchicalLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var h=b[g];if(d.isVertex(h)&&this.graph.isCellVisible(h)){for(var k=this.getEdges(h),l=0,m=0,n=0;nf&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; mxHierarchicalLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;for(var c=this.graph.model,b=[],d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;ff&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; +mxSwimlaneLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var h=b[g];if(null!=h&&d.isVertex(h)&&this.graph.isCellVisible(h)&&d.isAncestor(a,h)){for(var k=this.getEdges(h),l=0,m=0,n=0;nf&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; mxSwimlaneLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;for(var c=this.graph.model,b=[],d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;f=this.swimlanes.length)&&(p>h||(!b||n)&&p==h))e= -this.traverse(l,b,m[c],d,e,f,g,p)}}else if(null==e[k])for(c=0;c=this.swimlanes.length)&&(p>h||(!b||n)&&p==h))e= +this.traverse(m,b,l[c],d,e,f,g,p)}}else if(null==e[k])for(c=0;cb[e]?1:-1:(c=parseInt(a[e]),e=parseInt(b[e]),d=c==e?0:c>e?1:-1);break}0==d&&(c=a.length,e=b.length,c!=e&&(d=c>e?1:-1));return d}},mxPerimeter={RectanglePerimeter:function(a,b,c,d){b=a.getCenterX();var e=a.getCenterY(),f=Math.atan2(c.y-e,c.x-b),g=new mxPoint(0,0),h=Math.PI,k=Math.PI/2-f,m=Math.atan2(a.height,a.width);f<-h+m||f>h-m?(g.x=a.x,g.y=e-a.width* -Math.tan(f)/2):f<-m?(g.y=a.y,g.x=b-a.height*Math.tan(k)/2):f=a.x&&c.x<=a.x+a.width?g.x=c.x:c.y>=a.y&&c.y<=a.y+a.height&&(g.y=c.y),c.xa.x+a.width&&(g.x=a.x+a.width),c.ya.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width/2,h=a.height/2,k=e+g,m=f+h;b=c.x;c=c.y;var l=parseInt(b-k),n=parseInt(c-m);if(0==l&&0!=n)return new mxPoint(k, -m+h*n/Math.abs(n));if(0==l&&0==n)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-m,a=Math.sqrt(g*g*(1-a*a/(h*h)))||0,b<=e&&(a=-a),new mxPoint(k+a,c);if(b>=e&&b<=e+a.width)return a=b-k,a=Math.sqrt(h*h*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,m+a)}e=n/l;m-=e*k;f=g*g*e*e+h*h;a=-2*k*f;h=Math.sqrt(a*a-4*f*(g*g*e*e*k*k+h*h*k*k-g*g*h*h));g=(-a+h)/(2*f);h=(-a-h)/(2*f);k=e*g+m;m=e*h+m;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(k-c,2));b=Math.sqrt(Math.pow(h-b,2)+Math.pow(m-c,2));f=c=0;ec?new mxPoint(g,e):new mxPoint(g,e+a);if(h==c)return g>k?new mxPoint(b,h):new mxPoint(b+f,h);var m=g,l=h;d&&(k>=b&&k<=b+f?m=k:c>=e&&c<=e+a&&(l=c));return k-s&&rMath.PI-s,s=null;q?s=d&&(e&&c.x>=l.x&&c.x<=p.x||!e&&c.y>=l.y&&c.y<=p.y)?e?new mxPoint(c.x,l.y):new mxPoint(l.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+h/2+a*Math.tan(r)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+h/2-a*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+h,g+a/2+h*Math.tan(r)/2):new mxPoint(f, -g+a/2-h*Math.tan(r)/2):(d&&(d=new mxPoint(k,m),c.y>=g&&c.y<=g+a?(d.x=e?k:b==mxConstants.DIRECTION_WEST?f+h:f,d.y=c.y):c.x>=f&&c.x<=f+h&&(d.x=c.x,d.y=!e?m:b==mxConstants.DIRECTION_NORTH?g+a:g),k=d.x,m=d.y),s=e&&c.x<=f+h/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,k,m,l.x,l.y,n.x,n.y):mxUtils.intersection(c.x,c.y,k,m,n.x,n.y,p.x,p.y));null==s&&(s=new mxPoint(k,m));return s},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();var m=c.x,l=c.y,n= --Math.atan2(l-a,m-k),p=Math.PI,r=Math.PI/2,q=new mxPoint(k,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var s=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;q=new mxPoint;if(mf+h||m>e+g&&le+g&&l>f+h)d=!1;if(d){if(s){if(m==k){if(l<=f)return new mxPoint(k,f);if(l>=f+h)return new mxPoint(k,f+h)}else if(me+g){if(l==f+h/4)return new mxPoint(e+g,f+h/4);if(l==f+3*h/4)return new mxPoint(e+g,f+3*h/4)}else if(m==e){if(la)return new mxPoint(e,f+3*h/4)}else if(m==e+g){if(la)return new mxPoint(e+g,f+3*h/4)}if(l==f)return new mxPoint(k,f);if(l==f+h)return new mxPoint(k,f+h);mf+h/4&&lf+3*h/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+Math.floor(1.25*h))):m>k&&(l>f+h/4&&lf+3*h/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))))}else{if(l==a){if(m<=e)return new mxPoint(e,f+h/2);if(m>=e+g)return new mxPoint(e+g,f+h/ -2)}else if(lf+h){if(m==e+g/4)return new mxPoint(e+g/4,f+h);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f+h)}else if(l==f){if(mk)return new mxPoint(e+3*g/4,f)}else if(l==f+h){if(ma)return new mxPoint(e+3*g/4,f+h)}if(m==e)return new mxPoint(e,a);if(m==e+g)return new mxPoint(e+g,a);le+g/4&&me+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f+h)):l>a&&(m>e+g/4&&me+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)))}d= -k;n=a;m>=e&&m<=e+g?(d=m,n=l=f&&l<=f+h&&(n=l,d=m-m?(b=new mxPoint(e+g,f), -q=new mxPoint(e+g,f+h)):n>m&&nr&&np-m&&n<=p||n<-p+m&&n>=-p?(b=new mxPoint(e,f),q=new mxPoint(e,f+h)):n<-m&&n>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))):n<-r&&n>-p+m&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+ -Math.floor(1.25*h)))}else{m=Math.atan2(h/2,g/4);if(n==m)return new mxPoint(e+Math.floor(0.75*g),f);if(n==p-m)return new mxPoint(e+Math.floor(0.25*g),f);if(n==p||n==-p)return new mxPoint(e,f+Math.floor(0.5*h));if(0==n)return new mxPoint(e+g,f+Math.floor(0.5*h));if(n==-m)return new mxPoint(e+Math.floor(0.75*g),f+h);if(n==-p+m)return new mxPoint(e+Math.floor(0.25*g),f+h);0m&&np-m&&nn&&n>-m?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)):n<-m&&n>-p+m?(b=new mxPoint(e,f+h),q=new mxPoint(e+g,f+h)):n<-p+m&&n>-p&&(b=new mxPoint(e-Math.floor(0.25*g),f),q=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)))}q=mxUtils.intersection(k,a,c.x,c.y,b.x,b.y,q.x,q.y)}return null==q?new mxPoint(k,a):q}}; +return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;eb[e]?1:-1:(c=parseInt(a[e]),e=parseInt(b[e]),d=c==e?0:c>e?1:-1);break}0==d&&(c=a.length,e=b.length,c!=e&&(d=c>e?1:-1));return d}},mxPerimeter={RectanglePerimeter:function(a,b,c,d){b=a.getCenterX();var e=a.getCenterY(),f=Math.atan2(c.y-e,c.x-b),g=new mxPoint(0,0),h=Math.PI,k=Math.PI/2-f,l=Math.atan2(a.height,a.width);f<-h+l||f>h-l?(g.x=a.x,g.y=e-a.width* +Math.tan(f)/2):f<-l?(g.y=a.y,g.x=b-a.height*Math.tan(k)/2):f=a.x&&c.x<=a.x+a.width?g.x=c.x:c.y>=a.y&&c.y<=a.y+a.height&&(g.y=c.y),c.xa.x+a.width&&(g.x=a.x+a.width),c.ya.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width/2,h=a.height/2,k=e+g,l=f+h;b=c.x;c=c.y;var m=parseInt(b-k),n=parseInt(c-l);if(0==m&&0!=n)return new mxPoint(k, +l+h*n/Math.abs(n));if(0==m&&0==n)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-l,a=Math.sqrt(g*g*(1-a*a/(h*h)))||0,b<=e&&(a=-a),new mxPoint(k+a,c);if(b>=e&&b<=e+a.width)return a=b-k,a=Math.sqrt(h*h*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,l+a)}e=n/m;l-=e*k;f=g*g*e*e+h*h;a=-2*k*f;h=Math.sqrt(a*a-4*f*(g*g*e*e*k*k+h*h*k*k-g*g*h*h));g=(-a+h)/(2*f);h=(-a-h)/(2*f);k=e*g+l;l=e*h+l;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(k-c,2));b=Math.sqrt(Math.pow(h-b,2)+Math.pow(l-c,2));f=c=0;ec?new mxPoint(g,e):new mxPoint(g,e+a);if(h==c)return g>k?new mxPoint(b,h):new mxPoint(b+f,h);var l=g,m=h;d&&(k>=b&&k<=b+f?l=k:c>=e&&c<=e+a&&(m=c));return k-s&&rMath.PI-s,s=null;q?s=d&&(e&&c.x>=m.x&&c.x<=p.x||!e&&c.y>=m.y&&c.y<=p.y)?e?new mxPoint(c.x,m.y):new mxPoint(m.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+h/2+a*Math.tan(r)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+h/2-a*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+h,g+a/2+h*Math.tan(r)/2):new mxPoint(f, +g+a/2-h*Math.tan(r)/2):(d&&(d=new mxPoint(k,l),c.y>=g&&c.y<=g+a?(d.x=e?k:b==mxConstants.DIRECTION_WEST?f+h:f,d.y=c.y):c.x>=f&&c.x<=f+h&&(d.x=c.x,d.y=!e?l:b==mxConstants.DIRECTION_NORTH?g+a:g),k=d.x,l=d.y),s=e&&c.x<=f+h/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,k,l,m.x,m.y,n.x,n.y):mxUtils.intersection(c.x,c.y,k,l,n.x,n.y,p.x,p.y));null==s&&(s=new mxPoint(k,l));return s},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();var l=c.x,m=c.y,n= +-Math.atan2(m-a,l-k),p=Math.PI,r=Math.PI/2,q=new mxPoint(k,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var s=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;q=new mxPoint;if(lf+h||l>e+g&&me+g&&m>f+h)d=!1;if(d){if(s){if(l==k){if(m<=f)return new mxPoint(k,f);if(m>=f+h)return new mxPoint(k,f+h)}else if(le+g){if(m==f+h/4)return new mxPoint(e+g,f+h/4);if(m==f+3*h/4)return new mxPoint(e+g,f+3*h/4)}else if(l==e){if(ma)return new mxPoint(e,f+3*h/4)}else if(l==e+g){if(ma)return new mxPoint(e+g,f+3*h/4)}if(m==f)return new mxPoint(k,f);if(m==f+h)return new mxPoint(k,f+h);lf+h/4&&mf+3*h/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+Math.floor(1.25*h))):l>k&&(m>f+h/4&&mf+3*h/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))))}else{if(m==a){if(l<=e)return new mxPoint(e,f+h/2);if(l>=e+g)return new mxPoint(e+g,f+h/ +2)}else if(mf+h){if(l==e+g/4)return new mxPoint(e+g/4,f+h);if(l==e+3*g/4)return new mxPoint(e+3*g/4,f+h)}else if(m==f){if(lk)return new mxPoint(e+3*g/4,f)}else if(m==f+h){if(la)return new mxPoint(e+3*g/4,f+h)}if(l==e)return new mxPoint(e,a);if(l==e+g)return new mxPoint(e+g,a);me+g/4&&le+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f+h)):m>a&&(l>e+g/4&&le+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)))}d= +k;n=a;l>=e&&l<=e+g?(d=l,n=m=f&&m<=f+h&&(n=m,d=l-l?(b=new mxPoint(e+g,f), +q=new mxPoint(e+g,f+h)):n>l&&nr&&np-l&&n<=p||n<-p+l&&n>=-p?(b=new mxPoint(e,f),q=new mxPoint(e,f+h)):n<-l&&n>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))):n<-r&&n>-p+l&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+ +Math.floor(1.25*h)))}else{l=Math.atan2(h/2,g/4);if(n==l)return new mxPoint(e+Math.floor(0.75*g),f);if(n==p-l)return new mxPoint(e+Math.floor(0.25*g),f);if(n==p||n==-p)return new mxPoint(e,f+Math.floor(0.5*h));if(0==n)return new mxPoint(e+g,f+Math.floor(0.5*h));if(n==-l)return new mxPoint(e+Math.floor(0.75*g),f+h);if(n==-p+l)return new mxPoint(e+Math.floor(0.25*g),f+h);0l&&np-l&&nn&&n>-l?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)):n<-l&&n>-p+l?(b=new mxPoint(e,f+h),q=new mxPoint(e+g,f+h)):n<-p+l&&n>-p&&(b=new mxPoint(e-Math.floor(0.25*g),f),q=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)))}q=mxUtils.intersection(k,a,c.x,c.y,b.x,b.y,q.x,q.y)}return null==q?new mxPoint(k,a):q}}; function mxStylesheet(){this.styles={};this.putDefaultVertexStyle(this.createDefaultVertexStyle());this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())} mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a}; mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)}; @@ -912,18 +912,18 @@ mxCellEditor.prototype.resize=function(){var a=this.graph.getView().getState(thi (this.textarea.style.left=Math.round(this.bounds.x)+"px",this.textarea.style.top=Math.round(this.bounds.y)+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x+1))+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y+1))+"px"),this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!=this.getEmptyLabelText()?(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal","fill"!=a.style[mxConstants.STYLE_OVERFLOW]&& (this.textarea.style.width=Math.round(this.bounds.width/c)+this.wordWrapPadding+"px")):(this.textarea.style.whiteSpace="nowrap","fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&(this.textarea.style.width=""));else{var e=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null),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))); if(b)this.bounds=new mxRectangle(a.absoluteOffset.x,a.absoluteOffset.y,0,0),null!=e&&(e=(parseFloat(e)+2)*c,this.bounds.width=e,this.bounds.x+=d.x*e);else{var b=mxRectangle.fromRectangle(a),f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=null!=a.shape&&f==mxConstants.ALIGN_CENTER&&g==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(b):b;null!=e&&(b.width=parseFloat(e)* -c);if(!a.view.graph.cellRenderer.legacySpacing||"width"!=a.style[mxConstants.STYLE_OVERFLOW])var f=parseInt(a.style[mxConstants.STYLE_SPACING]||2)*c,h=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,k=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,m=(parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)* -c+f,f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=new mxRectangle(b.x+l,b.y+h,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?l+k:0),b.height-(g==mxConstants.ALIGN_MIDDLE?h+m:0));this.bounds=new mxRectangle(b.x+a.absoluteOffset.x,b.y+a.absoluteOffset.y,b.width,b.height)}this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!= +c);if(!a.view.graph.cellRenderer.legacySpacing||"width"!=a.style[mxConstants.STYLE_OVERFLOW])var f=parseInt(a.style[mxConstants.STYLE_SPACING]||2)*c,h=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,k=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*c+f,m=(parseInt(a.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)* +c+f,f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=new mxRectangle(b.x+m,b.y+h,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?m+k:0),b.height-(g==mxConstants.ALIGN_MIDDLE?h+l:0));this.bounds=new mxRectangle(b.x+a.absoluteOffset.x,b.y+a.absoluteOffset.y,b.width,b.height)}this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!= this.getEmptyLabelText()?(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal",e=Math.round(this.bounds.width/c)+this.wordWrapPadding,this.textarea.style.width=e+"px",this.textarea.scrollWidth>e&&(this.textarea.style.width=this.textarea.scrollWidth+"px")):(this.textarea.style.whiteSpace="nowrap",this.textarea.style.width="");8==document.documentMode&&(this.textarea.style.zoom="1",this.textarea.style.height="auto");a=this.textarea.scrollWidth;e=this.textarea.scrollHeight; 8==document.documentMode?(this.textarea.style.left=Math.max(0,Math.ceil((this.bounds.x-d.x*(this.bounds.width-(a+1)*c)+0*a*(c-1)+2*(d.x+0.5))/c))+"px",this.textarea.style.top=Math.max(0,Math.ceil((this.bounds.y-d.y*(this.bounds.height-(e+0.5)*c)+0*e*(c-1)+1*Math.abs(d.y+0.5))/c))+"px",this.textarea.style.width=Math.round(a*c)+"px",this.textarea.style.height=Math.round(e*c)+"px"):mxClient.IS_QUIRKS?(this.textarea.style.left=Math.max(0,Math.ceil(this.bounds.x-d.x*(this.bounds.width-(a+1)*c)+0*a*(c- 1)+2*(d.x+0.5)))+"px",this.textarea.style.top=Math.max(0,Math.ceil(this.bounds.y-d.y*(this.bounds.height-(e+0.5)*c)+0*e*(c-1)+1*Math.abs(d.y+0.5)))+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-d.x*(this.bounds.width-2))+1)+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-d.y*(this.bounds.height-4)+(-1==d.y?3:0))+1)+"px")}mxClient.IS_VML?this.textarea.style.zoom=c:(mxUtils.setPrefixedStyle(this.textarea.style,"transformOrigin","0px 0px"),mxUtils.setPrefixedStyle(this.textarea.style, "transform","scale("+c+","+c+")"+(null==d?"":" translate("+100*d.x+"%,"+100*d.y+"%)")))}};mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())};mxCellEditor.prototype.getBackgroundColor=function(a){return null}; mxCellEditor.prototype.startEditing=function(a,b){this.stopEditing(!0);null==this.textarea&&this.init();null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.hideTooltip();var c=this.graph.getView().getState(a);if(null!=c){this.graph.getView();var d=mxUtils.getValue(c.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),e=mxUtils.getValue(c.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(c.style,mxConstants.STYLE_FONTCOLOR,"black"),g=mxUtils.getValue(c.style, -mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),h=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,m=(mxUtils.getValue(c.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.backgroundColor=this.getBackgroundColor(c);this.textarea.style.textDecoration=m?"underline":"";this.textarea.style.fontWeight=h?"bold":"normal";this.textarea.style.fontStyle=k?"italic":"";this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.zIndex=this.zIndex;this.textarea.style.fontFamily=e;this.textarea.style.textAlign=g;this.textarea.style.outline="none";this.textarea.style.color=f;d=this.textDirection=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION, +mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),h=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,l=(mxUtils.getValue(c.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.backgroundColor=this.getBackgroundColor(c);this.textarea.style.textDecoration=l?"underline":"";this.textarea.style.fontWeight=h?"bold":"normal";this.textarea.style.fontStyle=k?"italic":"";this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.zIndex=this.zIndex;this.textarea.style.fontFamily=e;this.textarea.style.textAlign=g;this.textarea.style.outline="none";this.textarea.style.color=f;d=this.textDirection=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION, mxConstants.DEFAULT_TEXT_DIRECTION);d==mxConstants.TEXT_DIRECTION_AUTO&&null!=c&&(null!=c.text&&c.text.dialect!=mxConstants.DIALECT_STRICTHTML&&!mxUtils.isNode(c.text.value))&&(d=c.text.getAutoDirection());d==mxConstants.TEXT_DIRECTION_LTR||d==mxConstants.TEXT_DIRECTION_RTL?this.textarea.setAttribute("dir",d):this.textarea.removeAttribute("dir");this.textarea.innerHTML=this.getInitialValue(c,b)||"";this.initialValue=this.textarea.innerHTML;0==this.textarea.innerHTML.length||"\x3cbr\x3e"==this.textarea.innerHTML? (this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=this.textarea.innerHTML==this.getEmptyLabelText();this.graph.container.appendChild(this.textarea);this.editingCell=a;this.trigger=b;this.textNode=null;null!=c.text&&this.isHideLabel(c)&&(this.textNode=c.text.node,this.textNode.style.visibility="hidden");this.autoSize&&(this.graph.model.isEdge(c.cell)||"fill"!=c.style[mxConstants.STYLE_OVERFLOW])&&window.setTimeout(mxUtils.bind(this,function(){this.resize()}), -0);this.resize();try{this.textarea.focus(),this.isSelectText()&&(0=k.x:null!=c&&(h=c.x+c.width=a.x:null!=b&&(k=b.x+b.widthb.x+b.width?null!=c?(d=c.x,m=Math.max(Math.abs(k-c.y),m)):a==mxConstants.DIRECTION_NORTH? -k=b.y-2*h:a==mxConstants.DIRECTION_SOUTH?k=b.y+b.height+2*h:d=a==mxConstants.DIRECTION_EAST?b.x-2*m:b.x+b.width+2*m:null!=c&&(d=f.getRoutingCenterX(b),h=Math.max(Math.abs(d-c.x),m),k=c.y,m=0);e.push(new mxPoint(d-h,k-m));e.push(new mxPoint(d+h,k+m))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0l,h=f.xm;else k=Math.max(b.x,c.x),m=Math.min(b.x+b.width,c.x+c.width),g=k==m,g||(h=Math.max(b.y,c.y),l=Math.min(b.y+b.height,c.y+c.height),h=h==l);!h&&(g||a.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL)?mxEdgeStyle.TopToBottom(a,b,c,d,e):mxEdgeStyle.SideToSide(a,b,c,d,e)},SideToSide:function(a,b,c,d,e){var f=a.view;d=null!=d&&0=k.x:null!=c&&(h=c.x+c.width=a.x:null!=b&&(k=b.x+b.widthb.x+b.width?null!=c?(d=c.x,l=Math.max(Math.abs(k-c.y),l)):a==mxConstants.DIRECTION_NORTH? +k=b.y-2*h:a==mxConstants.DIRECTION_SOUTH?k=b.y+b.height+2*h:d=a==mxConstants.DIRECTION_EAST?b.x-2*l:b.x+b.width+2*l:null!=c&&(d=f.getRoutingCenterX(b),h=Math.max(Math.abs(d-c.x),l),k=c.y,l=0);e.push(new mxPoint(d-h,k-l));e.push(new mxPoint(d+h,k+l))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0m,h=f.xl;else k=Math.max(b.x,c.x),l=Math.min(b.x+b.width,c.x+c.width),g=k==l,g||(h=Math.max(b.y,c.y),m=Math.min(b.y+b.height,c.y+c.height),h=h==m);!h&&(g||a.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL)?mxEdgeStyle.TopToBottom(a,b,c,d,e):mxEdgeStyle.SideToSide(a,b,c,d,e)},SideToSide:function(a,b,c,d,e){var f=a.view;d=null!=d&&0=b.y&&d.y<=b.y+b.height&&(h=d.y),d.y>=c.y&&d.y<=c.y+c.height&&(f=d.y)),!mxUtils.contains(c,a,h)&&!mxUtils.contains(b,a,h)&&e.push(new mxPoint(a,h)),!mxUtils.contains(c,a,f)&&!mxUtils.contains(b,a,f)&&e.push(new mxPoint(a,f)),1==e.length&&(null!=d?!mxUtils.contains(c, a,d.y)&&!mxUtils.contains(b,a,d.y)&&e.push(new mxPoint(a,d.y)):(f=Math.max(b.y,c.y),b=Math.min(b.y+b.height,c.y+c.height),e.push(new mxPoint(a,f+(b-f)/2)))))},TopToBottom:function(a,b,c,d,e){var f=a.view;d=null!=d&&0=b.x&&d.x<=b.x+b.width)&&(a=d.x),h=null!=d?d.y:Math.round(g+(h-g)/2),!mxUtils.contains(c,a,h)&&!mxUtils.contains(b,a,h)&&e.push(new mxPoint(a,h)),a=null!=d&&d.x>=c.x&&d.x<=c.x+c.width?d.x:f.getRoutingCenterX(c),!mxUtils.contains(c,a,h)&&!mxUtils.contains(b,a,h)&&e.push(new mxPoint(a,h)),1==e.length&&(null!=d&&1==e.length?!mxUtils.contains(c,d.x,h)&&!mxUtils.contains(b,d.x,h)&&e.push(new mxPoint(d.x,h)):(f=Math.max(b.x,c.x),b=Math.min(b.x+b.width,c.x+c.width),e.push(new mxPoint(f+(b- -f)/2,h)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==k||Math.abs(k.x-a.x)>=h||Math.abs(k.y-a.y)>=h)e.push(a),k=a;return k}var g=a.absolutePoints,h=Math.max(1,a.view.scale),k=0r;r++){var y=null!=u&&u.x==t.x,v=null!=u&&u.y==t.y,K=null!=s&&t.y>= -s.y&&t.y<=s.y+s.height,s=null!=s&&t.x>=s.x&&t.x<=s.x+s.width,t=v||null==u&&K,z=y||null==u&&s;if(!(0==r&&(t&&z||y&&v))){if(null!=u&&!v&&!y&&(K||s)){m=K?!1:!0;break}if(z||t){m=t;1==r&&(m=0==d.length%2?t:z);break}}s=c;u=g[p];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),s=null);t=d[d.length-1];y&&v&&(d=d.slice(1))}m&&(null!=g[0]&&g[0].y!=l.y||null==g[0]&&null!=b&&(l.yb.y+b.height))?f(new mxPoint(n.x,l.y)):!m&&(null!=g[0]&&g[0].x!=l.x||null==g[0]&&null!=b&&(l.xb.x+b.width))&&f(new mxPoint(l.x, -n.y));m?n.y=l.y:n.x=l.x;for(r=0;rc.y+c.height))?f(new mxPoint(n.x,l.y)):!m&&(null!=g[p]&&g[p].x!=l.x||null==g[p]&&null!=c&&(l.xc.x+c.width))&&f(new mxPoint(l.x,n.y))));if(null==g[0]&&null!=b)for(;1< +f)/2,h)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==k||Math.abs(k.x-a.x)>=h||Math.abs(k.y-a.y)>=h)e.push(a),k=a;return k}var g=a.absolutePoints,h=Math.max(1,a.view.scale),k=0r;r++){var y=null!=u&&u.x==t.x,v=null!=u&&u.y==t.y,K=null!=s&&t.y>= +s.y&&t.y<=s.y+s.height,s=null!=s&&t.x>=s.x&&t.x<=s.x+s.width,t=v||null==u&&K,z=y||null==u&&s;if(!(0==r&&(t&&z||y&&v))){if(null!=u&&!v&&!y&&(K||s)){l=K?!1:!0;break}if(z||t){l=t;1==r&&(l=0==d.length%2?t:z);break}}s=c;u=g[p];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),s=null);t=d[d.length-1];y&&v&&(d=d.slice(1))}l&&(null!=g[0]&&g[0].y!=m.y||null==g[0]&&null!=b&&(m.yb.y+b.height))?f(new mxPoint(n.x,m.y)):!l&&(null!=g[0]&&g[0].x!=m.x||null==g[0]&&null!=b&&(m.xb.x+b.width))&&f(new mxPoint(m.x, +n.y));l?n.y=m.y:n.x=m.x;for(r=0;rc.y+c.height))?f(new mxPoint(n.x,m.y)):!l&&(null!=g[p]&&g[p].x!=m.x||null==g[p]&&null!=c&&(m.xc.x+c.width))&&f(new mxPoint(m.x,n.y))));if(null==g[0]&&null!=b)for(;1< e.length&&null!=e[1]&&mxUtils.contains(b,e[1].x,e[1].y);)e.splice(1,1);if(null==g[p]&&null!=c)for(;1 -v;v++)mxEdgeStyle.limits[v][1]=l[v][0]-z[v],mxEdgeStyle.limits[v][2]=l[v][1]-z[v],mxEdgeStyle.limits[v][4]=l[v][0]+l[v][2]+z[v],mxEdgeStyle.limits[v][8]=l[v][1]+l[v][3]+z[v];z=l[0][1]+l[0][3]/2;n=l[1][1]+l[1][3]/2;v=l[0][0]+l[0][2]/2-(l[1][0]+l[1][2]/2);K=z-n;z=0;0>v?z=0>K?2:1:0>=K&&(z=3,0==v&&(z=2));n=null;null!=b&&(n=k);b=[[0.5,0.5],[0.5,0.5]];for(v=0;2>v;v++)null!=n&&(b[v][0]=(n.x-l[v][0])/l[v][2],1>=Math.abs(n.x-l[v][0])?a[v]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(n.x-l[v][0]-l[v][2])&&(a[v]= -mxConstants.DIRECTION_MASK_EAST),b[v][1]=(n.y-l[v][1])/l[v][3],1>=Math.abs(n.y-l[v][1])?a[v]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(n.y-l[v][1]-l[v][3])&&(a[v]=mxConstants.DIRECTION_MASK_SOUTH)),n=null,null!=c&&(n=m);v=l[0][1]-(l[1][1]+l[1][3]);m=l[0][0]-(l[1][0]+l[1][2]);n=l[1][1]-(l[0][1]+l[0][3]);p=l[1][0]-(l[0][0]+l[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(m-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(v-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[3]= -Math.max(p-y,0);y=[];c=[];k=[];c[0]=m>=p?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;k[0]=v>=n?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);k[1]=mxUtils.reversePortConstraints(k[0]);m=m>=p?m:p;n=v>=n?v:n;p=[[0,0],[0,0]];r=!1;for(v=0;2>v;v++)0==a[v]&&(0==(c[v]&d[v])&&(c[v]=mxUtils.reversePortConstraints(c[v])),0==(k[v]&d[v])&&(k[v]=mxUtils.reversePortConstraints(k[v])),p[v][0]=k[v],p[v][1]=c[v]);0v;v++)if(0==a[v]&&(0==(p[v][0]&d[v])&&(p[v][0]=p[v][1]),y[v]=p[v][0]&d[v],y[v]|=(p[v][1]&d[v])<<8,y[v]|=(p[1-v][v]&d[v])<<16,y[v]|=(p[1-v][1-v]&d[v])<<24,0==(y[v]&15)&&(y[v]<<=8),0==(y[v]&3840)&&(y[v]= -y[v]&15|y[v]>>8),0==(y[v]&983040)&&(y[v]=y[v]&65535|(y[v]&251658240)>>8),a[v]=y[v]&15,d[v]==mxConstants.DIRECTION_MASK_WEST||d[v]==mxConstants.DIRECTION_MASK_NORTH||d[v]==mxConstants.DIRECTION_MASK_EAST||d[v]==mxConstants.DIRECTION_MASK_SOUTH))a[v]=d[v];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];y=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=z;y-=z;1>d&&(d+=4);1>y&&(y+=4);d=mxEdgeStyle.routePatterns[d-1][y-1];mxEdgeStyle.wayPoints1[0][0]=l[0][0];mxEdgeStyle.wayPoints1[0][1]=l[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-= -f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*l[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*l[0][2];mxEdgeStyle.wayPoints1[0][1]+=l[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=l[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*l[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*l[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;c=y=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))? -0:1;for(v=k=0;v>5,n<<=z,15>=4),p=0<(d[v]&mxEdgeStyle.CENTER_MASK),(r||s)&&9>n?(q=0,r=r?0:1,q=p&&0==k?l[r][0]+b[r][0]*l[r][2]:p?l[r][1]+b[r][1]* -l[r][3]:mxEdgeStyle.limits[r][n],0==k?(n=(q-mxEdgeStyle.wayPoints1[f][0])*m[0],0 +v;v++)mxEdgeStyle.limits[v][1]=m[v][0]-z[v],mxEdgeStyle.limits[v][2]=m[v][1]-z[v],mxEdgeStyle.limits[v][4]=m[v][0]+m[v][2]+z[v],mxEdgeStyle.limits[v][8]=m[v][1]+m[v][3]+z[v];z=m[0][1]+m[0][3]/2;n=m[1][1]+m[1][3]/2;v=m[0][0]+m[0][2]/2-(m[1][0]+m[1][2]/2);K=z-n;z=0;0>v?z=0>K?2:1:0>=K&&(z=3,0==v&&(z=2));n=null;null!=b&&(n=k);b=[[0.5,0.5],[0.5,0.5]];for(v=0;2>v;v++)null!=n&&(b[v][0]=(n.x-m[v][0])/m[v][2],1>=Math.abs(n.x-m[v][0])?a[v]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(n.x-m[v][0]-m[v][2])&&(a[v]= +mxConstants.DIRECTION_MASK_EAST),b[v][1]=(n.y-m[v][1])/m[v][3],1>=Math.abs(n.y-m[v][1])?a[v]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(n.y-m[v][1]-m[v][3])&&(a[v]=mxConstants.DIRECTION_MASK_SOUTH)),n=null,null!=c&&(n=l);v=m[0][1]-(m[1][1]+m[1][3]);l=m[0][0]-(m[1][0]+m[1][2]);n=m[1][1]-(m[0][1]+m[0][3]);p=m[1][0]-(m[0][0]+m[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(l-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(v-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[3]= +Math.max(p-y,0);y=[];c=[];k=[];c[0]=l>=p?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;k[0]=v>=n?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);k[1]=mxUtils.reversePortConstraints(k[0]);l=l>=p?l:p;n=v>=n?v:n;p=[[0,0],[0,0]];r=!1;for(v=0;2>v;v++)0==a[v]&&(0==(c[v]&d[v])&&(c[v]=mxUtils.reversePortConstraints(c[v])),0==(k[v]&d[v])&&(k[v]=mxUtils.reversePortConstraints(k[v])),p[v][0]=k[v],p[v][1]=c[v]);0v;v++)if(0==a[v]&&(0==(p[v][0]&d[v])&&(p[v][0]=p[v][1]),y[v]=p[v][0]&d[v],y[v]|=(p[v][1]&d[v])<<8,y[v]|=(p[1-v][v]&d[v])<<16,y[v]|=(p[1-v][1-v]&d[v])<<24,0==(y[v]&15)&&(y[v]<<=8),0==(y[v]&3840)&&(y[v]= +y[v]&15|y[v]>>8),0==(y[v]&983040)&&(y[v]=y[v]&65535|(y[v]&251658240)>>8),a[v]=y[v]&15,d[v]==mxConstants.DIRECTION_MASK_WEST||d[v]==mxConstants.DIRECTION_MASK_NORTH||d[v]==mxConstants.DIRECTION_MASK_EAST||d[v]==mxConstants.DIRECTION_MASK_SOUTH))a[v]=d[v];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];y=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=z;y-=z;1>d&&(d+=4);1>y&&(y+=4);d=mxEdgeStyle.routePatterns[d-1][y-1];mxEdgeStyle.wayPoints1[0][0]=m[0][0];mxEdgeStyle.wayPoints1[0][1]=m[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-= +f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*m[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*m[0][2];mxEdgeStyle.wayPoints1[0][1]+=m[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=m[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*m[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*m[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;c=y=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))? +0:1;for(v=k=0;v>5,n<<=z,15>=4),p=0<(d[v]&mxEdgeStyle.CENTER_MASK),(r||s)&&9>n?(q=0,r=r?0:1,q=p&&0==k?m[r][0]+b[r][0]*m[r][2]:p?m[r][1]+b[r][1]* +m[r][3]:mxEdgeStyle.limits[r][n],0==k?(n=(q-mxEdgeStyle.wayPoints1[f][0])*l[0],0e&&(e+=4);1>a&&(a+=4);b=routePatterns[e-1][a-1];if(0==c||0==d)null!=inlineRoutePatterns[e-1][a- 1]&&(b=inlineRoutePatterns[e-1][a-1]);return b}},mxStyleRegistry={values:[],putValue:function(a,b){mxStyleRegistry.values[a]=b},getValue:function(a){return mxStyleRegistry.values[a]},getName:function(a){for(var b in mxStyleRegistry.values)if(mxStyleRegistry.values[b]==a)return b;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation); mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter); @@ -1057,12 +1057,12 @@ mxGraphView.prototype.getPerimeterPoint=function(a,b,c,d){var e=null;if(null!=a) mxGraphView.prototype.getRoutingCenterY=function(a){var b=null!=a.style?parseFloat(a.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return a.getCenterY()+b*a.height};mxGraphView.prototype.getPerimeterBounds=function(a,b){b=null!=b?b:0;null!=a&&(b+=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0));return a.getPerimeterBounds(b*this.scale)}; mxGraphView.prototype.getPerimeterFunction=function(a){a=a.style[mxConstants.STYLE_PERIMETER];if("string"==typeof a){var b=mxStyleRegistry.getValue(a);null==b&&this.isAllowEval()&&(b=mxUtils.eval(a));a=b}return"function"==typeof a?a:null};mxGraphView.prototype.getNextPoint=function(a,b,c){a=a.absolutePoints;var d=null;null!=a&&2<=a.length&&(d=a.length,d=a[c?Math.min(1,d-1):Math.max(0,d-2)]);null==d&&null!=b&&(d=new mxPoint(b.getCenterX(),b.getCenterY()));return d}; mxGraphView.prototype.getVisibleTerminal=function(a,b){for(var c=this.graph.getModel(),d=c.getTerminal(a,b),e=d;null!=d&&d!=this.currentRoot;){if(!this.graph.isCellVisible(e)||this.isCellCollapsed(d))e=d;d=c.getParent(d)}c.getParent(e)==c.getRoot()&&(e=null);return e}; -mxGraphView.prototype.updateEdgeBounds=function(a){var b=a.absolutePoints,c=b[0],d=b[b.length-1];if(c.x!=d.x||c.y!=d.y){var e=d.x-c.x,f=d.y-c.y;a.terminalDistance=Math.sqrt(e*e+f*f)}else a.terminalDistance=0;var d=0,g=[],f=c;if(null!=f){for(var c=f.x,h=f.y,k=c,m=h,l=1;l=Math.round(h+g)&&k=f?0:f*f/(a*a+m*m));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,h.x,h.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,h.x,h.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-n-a)/d),e/this.scale)}}return new mxPoint}; +mxGraphView.prototype.updateEdgeBounds=function(a){var b=a.absolutePoints,c=b[0],d=b[b.length-1];if(c.x!=d.x||c.y!=d.y){var e=d.x-c.x,f=d.y-c.y;a.terminalDistance=Math.sqrt(e*e+f*f)}else a.terminalDistance=0;var d=0,g=[],f=c;if(null!=f){for(var c=f.x,h=f.y,k=c,l=h,m=1;m=Math.round(h+g)&&k=f?0:f*f/(a*a+l*l));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,h.x,h.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,h.x,h.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-n-a)/d),e/this.scale)}}return new mxPoint}; mxGraphView.prototype.updateEdgeLabelOffset=function(a){var b=a.absolutePoints;a.absoluteOffset.x=a.getCenterX();a.absoluteOffset.y=a.getCenterY();if(null!=b&&0this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,h=a?Math.ceil(d.width/f.width)+1:0,k=(h-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,h=a?Math.ceil(d.width/f.width)+1:0,k=(h-1)*f.width,l=(g-1)*f.height;null==this.horizontalPageBreaks&&0this.model.getChildCount(b)&&c--;this.model.add(b,a[h],c+h);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[h],!0);this.isExtendParentsOnAdd(a[h])&&this.isExtendParent(a[h])&&this.extendParent(a[h]);(null==g||g)&&this.constrainChild(a[h]);null!=d&&this.cellConnected(a[h],d,!0);null!=e&&this.cellConnected(a[h],e,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",b,"index",c,"source",d,"target", +mxGraph.prototype.cellsAdded=function(a,b,c,d,e,f,g){if(null!=a&&null!=b&&null!=c){this.model.beginUpdate();try{for(var h=f?this.view.getState(b):null,k=null!=h?h.origin:null,l=new mxPoint(0,0),h=0;hthis.model.getChildCount(b)&&c--;this.model.add(b,a[h],c+h);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[h],!0);this.isExtendParentsOnAdd(a[h])&&this.isExtendParent(a[h])&&this.extendParent(a[h]);(null==g||g)&&this.constrainChild(a[h]);null!=d&&this.cellConnected(a[h],d,!0);null!=e&&this.cellConnected(a[h],e,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",b,"index",c,"source",d,"target", e,"absolute",f))}finally{this.model.endUpdate()}}};mxGraph.prototype.autoSizeCell=function(a,b){if(null!=b?b:1)for(var c=this.model.getChildCount(a),d=0;df&&(l=0),b>g&&(n=0),this.view.setTranslate(Math.floor(l/2-h.x),Math.floor(n/2-h.y)),this.container.scrollLeft=(a-f)/ -2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(k.x-h.x*m+l*c/m):k.x,b?Math.floor(k.y-h.y*m+n*d/m):k.y)}; +mxGraph.prototype.center=function(a,b,c,d){a=null!=a?a:!0;b=null!=b?b:!0;c=null!=c?c:0.5;d=null!=d?d:0.5;var e=mxUtils.hasScrollbars(this.container),f=this.container.clientWidth,g=this.container.clientHeight,h=this.getGraphBounds(),k=this.view.translate,l=this.view.scale,m=a?f-h.width:0,n=b?g-h.height:0;e?(h.x-=k.x,h.y-=k.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>f&&(m=0),b>g&&(n=0),this.view.setTranslate(Math.floor(m/2-h.x),Math.floor(n/2-h.y)),this.container.scrollLeft=(a-f)/ +2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(k.x-h.x*l+m*c/l):k.x,b?Math.floor(k.y-h.y*l+n*d/l):k.y)}; mxGraph.prototype.zoom=function(a,b){b=null!=b?b:this.centerZoom;var c=Math.round(100*this.view.scale*a)/100,d=this.view.getState(this.getSelectionCell());a=c/this.view.scale;if(this.keepSelectionVisibleOnZoom&&null!=d)d=new mxRectangle(d.x*a,d.y*a,d.width*a,d.height*a),this.view.scale=c,this.scrollRectToVisible(d)||(this.view.revalidate(),this.view.setScale(c));else if(d=mxUtils.hasScrollbars(this.container),b&&!d){var d=this.container.offsetWidth,e=this.container.offsetHeight;if(1a.width*e||0a.height*e)return!0}return!1};mxGraph.prototype.getChildVertices=function(a){return this.getChildCells(a,!0,!1)};mxGraph.prototype.getChildEdges=function(a){return this.getChildCells(a,!1,!0)}; mxGraph.prototype.getChildCells=function(a,b,c){a=null!=a?a:this.getDefaultParent();a=this.model.getChildCells(a,null!=b?b:!1,null!=c?c:!1);b=[];for(c=0;c=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=h?f.push(n):this.getCells(a, -b,c,d,n,f)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),h=0;h=a)&&(!e||m.y>=b)&&f.push(k)}return f}; -mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,h=0,k=0;kh&&(h=l,g=m)}}0==d.length&&null!=g&&d.push(g)}return d}; +mxGraph.prototype.getCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=h?f.push(n):this.getCells(a, +b,c,d,n,f)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),h=0;h=a)&&(!e||l.y>=b)&&f.push(k)}return f}; +mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,h=0,k=0;kh&&(h=m,g=l)}}0==d.length&&null!=g&&d.push(g)}return d}; mxGraph.prototype.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)))if(d=this.model.getEdgeCount(a),0c*this.view.scale||Math.abs(f.y- -b.getGraphY())>c*this.view.scale){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var e=this.selectionCellsHandler.getHandler(d.cell);if(null!=e&&null!=e.bends&&0c*this.view.scale){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var e=this.selectionCellsHandler.getHandler(d.cell);if(null!=e&&null!=e.bends&&0mxUtils.indexOf(b,e)&&c.push(e)): c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var n=new mxRubberband(this);this.getRubberband=function(){return n};var p=(new Date).getTime(),r=0,q=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove= function(){var a=this.currentState;q.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),r=0):r=(new Date).getTime()-p};var s=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=h)&&f.push(n);this.getAllCells(a,b,c,d,n,f)}}}return f};var K=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:K.apply(this,arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style, "locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var F=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();F=null!=c&&!this.isSelectionEmpty()&&!this.isCellSelected(c.cell)?this.getSelectionCells():null}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell"); null==d?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),n.start(c.x,c.y)):null!=F?this.addSelectionCells(F):1p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:c?"UTC":(String(a).match(e)||[""]).pop().replace(f,""),o:(0this.activationDelay)if(this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==c||!mxUtils.contains(this.bbox,b,c)))null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!= a&&this.graph.connectionHandler.constraintHandler.reset()):this.reset()}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.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(b,c,f,g){if(null!=c&&null!=b&&("1"==c.style.snapToPoint||"1"==b.style.snapToPoint)){c=this.getTerminalPort(b,c,g);var h=this.getNextPoint(b,f,g),k=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var n=Math.cos(-m),p=Math.sin(-m),h=mxUtils.getRotatedPoint(h,n,p,l);n=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]|| -0);n+=parseFloat(b.style[g?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);h=this.getPerimeterPoint(c,h,0==m&&k,n);0!=m&&(n=Math.cos(m),p=Math.sin(m),h=mxUtils.getRotatedPoint(h,n,p,l));if(null!=c){m=this.graph.getAllConnectionConstraints(c);k=l=null;for(n=0;nb&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&& @@ -1663,7 +1663,7 @@ return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function() c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()};var e=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));e.apply(this,arguments)};var f=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?f.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape= function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var g=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){g.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a), d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var h=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode= -a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(b.originalNode!=a)d(a);else if(null!=a){a=a.firstChild;for(b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}(1!=a.nodeType||"BR"!==a.nodeName&&null==a.firstChild)&&(3!=a.nodeType||0==mxUtils.trim(mxUtils.getTextContent(a)).length)?a.parentNode.removeChild(a):(3== +a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else{a=a.firstChild;for(b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}(1!=a.nodeType||"BR"!==a.nodeName&&null==a.firstChild)&&(3!=a.nodeType||0==mxUtils.trim(mxUtils.getTextContent(a)).length)?a.parentNode.removeChild(a):(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")))}h.apply(this,arguments);!mxClient.IS_QUIRKS&&(7!==document.documentMode&&8!==document.documentMode)&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0)); window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0k||Math.abs(h)>k)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e, -f),this.isSpaceEvent(b)?(e=this.x+this.width,f=this.y+this.height,g=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/g)*g,this.height=this.graph.snap(this.height/g)*g,this.x=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0, -0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var H=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?u:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return H.apply(this,arguments)};var B=mxGraphHandler.prototype.getBoundingBox; -mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&(null!=d&&d.relative)&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return B.apply(this,arguments)};var A=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b= -this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):A.apply(this,arguments)};var D=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell), -e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&D.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()g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)), +this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var z=mxRubberband.prototype.reset; +mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);z.apply(this,arguments)};var y=(new Date).getTime(),v=0,K=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){K.apply(this,arguments);c!=this.currentTerminalState?(y=(new Date).getTime(),v=0):v=(new Date).getTime()-y;this.currentTerminalState=c};var F=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent= +function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length- +1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR, +mxConstants.HANDLE_STROKECOLOR)};var H=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?u:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return H.apply(this,arguments)};var B=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&& +(null!=d&&d.relative)&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return B.apply(this,arguments)};var A=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox? +(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):A.apply(this,arguments)};var D=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&& +D.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()>10),56320+(c&1023))):c==c?String.fromCharCode(c):" ">b[1]?"":b[1]}function b(a,c){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g, c)+'"'}function c(a){return e[a]||(e[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function d(a){return f[a]||(f[a]=("\u0010">a?"%0":"%")+a.charCodeAt(0).toString(16))}var e={"\\":"\\\\"},f={"\\":"%5c"},g=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]*)|[~|^$*]\x3d|[^\"'\\\\/]|/(?![/*])", -"gi"),m=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),l=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");k=function(b){return b.replace(m,a)};h=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",h=0,m=a.length;h=q?" ":/url\(/i.test(n)?"url("+b(n.replace(l,""),d)+")":n;if(f!=n||" "!=n)a[e++]=f=n}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=h,window.decodeCss=k);var m=function(){function a(b){b=(""+b).match(l);return!b?c:new g(h(b[1]),h(b[2]),h(b[3]),h(b[4]),h(b[5]),h(b[6]),h(b[7]))}function b(a,e){return"string"==typeof a?encodeURI(a).replace(e,d):c}function d(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function e(a){if(a=== -c)return c;a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var b=k,d;(d=a.replace(b,"$1"))!=a;a=d);return a}function f(a,b){var c=a.T(),d=b.K();d?c.ga(b.j):d=b.X();d?c.da(b.n):d=b.Y();d?c.ea(b.k):d=b.$();var g=b.g,h=e(g);if(d)c.ca(b.V()),h=h&&h.replace(m,"");else if(d=!!g){if(47!==h.charCodeAt(0))var h=e(c.g||"").replace(m,""),k=h.lastIndexOf("/")+1,h=e((k?h.substring(0,k):"")+e(g)).replace(m,"")}else h=h&&h.replace(m,""),h!==g&&c.G(h);d?c.G(h):d=b.aa();d?c.O(b.l):d=b.Z();d&&c.fa(b.o); -return c}function g(a,b,c,d,e,f,h){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=h}function h(a){return"string"==typeof a&&0=q?" ":/url\(/i.test(n)?"url("+b(n.replace(m,""),d)+")":n;if(f!=n||" "!=n)a[e++]=f=n}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=h,window.decodeCss=k);var l=function(){function a(b){b=(""+b).match(m);return!b?c:new g(h(b[1]),h(b[2]),h(b[3]),h(b[4]),h(b[5]),h(b[6]),h(b[7]))}function b(a,e){return"string"==typeof a?encodeURI(a).replace(e,d):c}function d(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function e(a){if(a=== +c)return c;a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var b=k,d;(d=a.replace(b,"$1"))!=a;a=d);return a}function f(a,b){var c=a.T(),d=b.K();d?c.ga(b.j):d=b.X();d?c.da(b.n):d=b.Y();d?c.ea(b.k):d=b.$();var g=b.g,h=e(g);if(d)c.ca(b.V()),h=h&&h.replace(l,"");else if(d=!!g){if(47!==h.charCodeAt(0))var h=e(c.g||"").replace(l,""),k=h.lastIndexOf("/")+1,h=e((k?h.substring(0,k):"")+e(g)).replace(l,"")}else h=h&&h.replace(l,""),h!==g&&c.G(h);d?c.G(h):d=b.aa();d?c.O(b.l):d=b.Z();d&&c.fa(b.o); +return c}function g(a,b,c,d,e,f,h){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=h}function h(a){return"string"==typeof a&&0]/g,H={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a", -"\x3c":"%3c","\x3e":"%3e"},B=/^(?:([^:/?# ]+):)?/,A=/^(?:https?|mailto|data)$/i;l=function(){var a={};return function T(b,c,d,g,m){b=K(b);var l=f[b];if(!l||"object"!==typeof l)c.length=0;else{for(var n=l.cssPropBits,D=n&80,p=n&1536,q=NaN,r=0,B=0;r=u)A=n&1?A:"";else if(J=A.charCodeAt(1),z=A.charCodeAt(2),H=48<=J&&57>=J,S=48<=z&&57>=z,43===u&&(H||46===J&&S))A=n&1?(H?"":"0")+A.substring(1):"";else if(45===u&&(H||46===J&&S))A=n&4?(H?"-":"-0")+A.substring(1):n&1?"0":"";else if(46===u&&H)A=n&1?"0"+A:"";else if('url("'===A.substring(0,5))A= -d&&n&16?e(s(h(g,c[r].substring(5,A.length-2)),b,d)):"";else if("("===A.charAt(A.length-1))a:{L=c;ca=r;A=1;U=ca+1;for(u=L.length;U]/g,H={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a", +"\x3c":"%3c","\x3e":"%3e"},B=/^(?:([^:/?# ]+):)?/,A=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function T(b,c,d,g,l){b=K(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var n=m.cssPropBits,D=n&80,p=n&1536,q=NaN,r=0,B=0;r=u)A=n&1?A:"";else if(J=A.charCodeAt(1),z=A.charCodeAt(2),H=48<=J&&57>=J,S=48<=z&&57>=z,43===u&&(H||46===J&&S))A=n&1?(H?"":"0")+A.substring(1):"";else if(45===u&&(H||46===J&&S))A=n&4?(H?"-":"-0")+A.substring(1):n&1?"0":"";else if(46===u&&H)A=n&1?"0"+A:"";else if('url("'===A.substring(0,5))A= +d&&n&16?e(s(h(g,c[r].substring(5,A.length-2)),b,d)):"";else if("("===A.charAt(A.length-1))a:{L=c;ca=r;A=1;U=ca+1;for(u=L.length;Ug&&" "===b[k-1]&&--k;f.startAtrule&&f.startAtrule(b[h].toLowerCase(),b.slice(g,k));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,h){++f;for(h.startBlock&&h.startBlock();fm)return m=~m,m===h?m+1:m;var l=a[m];if("{"!==l)return m===h?m+1:m;c=m+1;m>h&&" "===a[m-1]&&--m;for(g.startRuleset&&g.startRuleset(a.slice(h,m));cl)l=~l;else{for(var n=[],p=0,q=b;qg&&" "===b[k-1]&&--k;f.startAtrule&&f.startAtrule(b[h].toLowerCase(),b.slice(g,k));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,h){++f;for(h.startBlock&&h.startBlock();fl)return l=~l,l===h?l+1:l;var m=a[l];if("{"!==m)return l===h?l+1:l;c=l+1;l>h&&" "===a[l-1]&&--l;for(g.startRuleset&&g.startRuleset(a.slice(h,l));cm)m=~m;else{for(var n=[],p=0,q=b;q])/g;f=a+"";if(fa)f=f.split(g);else{for(var h=[],k=0,m;(m=g.exec(f))!==c;)h.push(f.substring(k,m.index)),h.push(m[0]),k=m.index+m[0].length;h.push(f.substring(k));f=h}p(b,f,0,{r:d,C:d},e)}}function n(a,b,c,d,e){return function(){p(a,b,c,d,e)}}function p(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var h,k,m,l=c.length;dc)){for(f=g.length;--f>c;){var h=g[f].v;e.f[h]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",h,"\x3e")}c])/g;f=a+"";if(fa)f=f.split(g);else{for(var h=[],k=0,l;(l=g.exec(f))!==c;)h.push(f.substring(k,l.index)),h.push(l[0]),k=l.index+l[0].length;h.push(f.substring(k));f=h}p(b,f,0,{r:d,C:d},e)}}function n(a,b,c,d,e){return function(){p(a,b,c,d,e)}}function p(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var h,k,l,m=c.length;dc)){for(f=g.length;--f>c;){var h=g[f].v;e.f[h]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",h,"\x3e")}c/g,S=/\"/g,L=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,fa=3==="a,b".split(/(,)/).length,ca=e.c.CDATA|e.c.RCDATA,U={},ea={},ia=/^(?:https?|mailto|data)$/i,Z={};Z.pa=Z.escapeAttrib=h;Z.ra=Z.makeHtmlSanitizer=r;Z.sa=Z.makeSaxParser=l;Z.ta=Z.makeTagPolicy=aa;Z.wa=Z.normalizeRCData=k;Z.xa=Z.sanitize= -function(a,b,c,d){return w(a,aa(b,c,d))};Z.ya=Z.sanitizeAttribs=V;Z.za=Z.sanitizeWithPolicy=w;Z.Ba=Z.unescapeEntities=g;return Z}(u);g=e.sanitize;"undefined"!==typeof window&&(window.html=e,window.html_sanitize=g)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,b){var c="",d,e,f,g,h,k,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m>2,d=(d&3)<<4|e>>4,h=(e&15)<<2|f>>6,k=f&63,isNaN(e)?h=k=64:isNaN(f)&&(k=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(k);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,h,k=0;for(a= +c,M=/\0/g,R=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,$=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,Y=/&/g,Q=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,W=/[<]/g,X=/>/g,S=/\"/g,L=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,fa=3==="a,b".split(/(,)/).length,ca=e.c.CDATA|e.c.RCDATA,U={},ea={},ia=/^(?:https?|mailto|data)$/i,Z={};Z.pa=Z.escapeAttrib=h;Z.ra=Z.makeHtmlSanitizer=r;Z.sa=Z.makeSaxParser=m;Z.ta=Z.makeTagPolicy=aa;Z.wa=Z.normalizeRCData=k;Z.xa=Z.sanitize= +function(a,b,c,d){return w(a,aa(b,c,d))};Z.ya=Z.sanitizeAttribs=V;Z.za=Z.sanitizeWithPolicy=w;Z.Ba=Z.unescapeEntities=g;return Z}(u);g=e.sanitize;"undefined"!==typeof window&&(window.html=e,window.html_sanitize=g)})();var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,b){var c="",d,e,f,g,h,k,l=0;for(null!=b&&b||(a=Base64._utf8_encode(a));l>2,d=(d&3)<<4|e>>4,h=(e&15)<<2|f>>6,k=f&63,isNaN(e)?h=k=64:isNaN(f)&&(k=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(h)+this._keyStr.charAt(k);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,h,k=0;for(a= a.replace(/[^A-Za-z0-9\+\/\=]/g,"");k>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|h,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=h&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?b+=String.fromCharCode(d): -(127d?b+=String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=c1=c2=0;cd?(b+=String.fromCharCode(d),c++):191d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};!function(a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=a()}(function(){return function b(c,d,e){function f(h,m){if(!d[h]){if(!c[h]){var l="function"==typeof require&&require;if(!m&&l)return l(h,!0);if(g)return g(h,!0);l=Error("Cannot find module '"+h+"'");throw l.code="MODULE_NOT_FOUND",l;}l=d[h]={exports:{}}; -c[h][0].call(l.exports,function(b){var d=c[h][1][b];return f(d?d:b)},l,l.exports,b,c,d,e)}return d[h].exports}for(var g="function"==typeof require&&require,h=0;hb.windowBits&&(b.windowBits+=16);this.err=0;this.msg= -"";this.ended=!1;this.chunks=[];this.strm=new l;this.strm.avail_out=0;var c=g.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw Error(m[c]);if(b.header&&g.deflateSetHeader(this.strm,b.header),b.dictionary){var d;if(d="string"==typeof b.dictionary?k.string2buf(b.dictionary):"[object ArrayBuffer]"===n.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=g.deflateSetDictionary(this.strm,d),c!==p)throw Error(m[c]);this._dict_set=!0}}function f(b,c){var d= -new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/deflate"),h=b("./utils/common"),k=b("./utils/strings"),m=b("./zlib/messages"),l=b("./zlib/zstream"),n=Object.prototype.toString,p=0,r=-1,q=0,s=8;e.prototype.push=function(b,c){var d,e,f=this.strm,m=this.options.chunkSize;if(this.ended)return!1;e=c===~~c?c:!0===c?4:0;"string"==typeof b?f.input=k.string2buf(b):"[object ArrayBuffer]"===n.call(b)?f.input=new Uint8Array(b):f.input=b;f.next_in=0;f.avail_in=f.input.length;do{if(0=== -f.avail_out&&(f.output=new h.Buf8(m),f.next_out=0,f.avail_out=m),d=g.deflate(f,e),1!==d&&d!==p)return this.onEnd(d),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==e&&2!==e)||("string"===this.options.to?this.onData(k.buf2binstring(h.shrinkBuf(f.output,f.next_out))):this.onData(h.shrinkBuf(f.output,f.next_out)))}while((0d?b+=String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=c1=c2=0;cd?(b+=String.fromCharCode(d),c++):191d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};!function(a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=a()}(function(){return function b(c,d,e){function f(h,l){if(!d[h]){if(!c[h]){var m="function"==typeof require&&require;if(!l&&m)return m(h,!0);if(g)return g(h,!0);m=Error("Cannot find module '"+h+"'");throw m.code="MODULE_NOT_FOUND",m;}m=d[h]={exports:{}}; +c[h][0].call(m.exports,function(b){var d=c[h][1][b];return f(d?d:b)},m,m.exports,b,c,d,e)}return d[h].exports}for(var g="function"==typeof require&&require,h=0;hb.windowBits&&(b.windowBits+=16);this.err=0;this.msg= +"";this.ended=!1;this.chunks=[];this.strm=new m;this.strm.avail_out=0;var c=g.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw Error(l[c]);if(b.header&&g.deflateSetHeader(this.strm,b.header),b.dictionary){var d;if(d="string"==typeof b.dictionary?k.string2buf(b.dictionary):"[object ArrayBuffer]"===n.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=g.deflateSetDictionary(this.strm,d),c!==p)throw Error(l[c]);this._dict_set=!0}}function f(b,c){var d= +new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/deflate"),h=b("./utils/common"),k=b("./utils/strings"),l=b("./zlib/messages"),m=b("./zlib/zstream"),n=Object.prototype.toString,p=0,r=-1,q=0,s=8;e.prototype.push=function(b,c){var d,e,f=this.strm,l=this.options.chunkSize;if(this.ended)return!1;e=c===~~c?c:!0===c?4:0;"string"==typeof b?f.input=k.string2buf(b):"[object ArrayBuffer]"===n.call(b)?f.input=new Uint8Array(b):f.input=b;f.next_in=0;f.avail_in=f.input.length;do{if(0=== +f.avail_out&&(f.output=new h.Buf8(l),f.next_out=0,f.avail_out=l),d=g.deflate(f,e),1!==d&&d!==p)return this.onEnd(d),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==e&&2!==e)||("string"===this.options.to?this.onData(k.buf2binstring(h.shrinkBuf(f.output,f.next_out))):this.onData(h.shrinkBuf(f.output,f.next_out)))}while((0c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new n;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==m.Z_OK)throw Error(l[b]); -this.header=new p;g.inflateGetHeader(this.strm,this.header)}function f(b,c){var d=new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/inflate"),h=b("./utils/common"),k=b("./utils/strings"),m=b("./zlib/constants"),l=b("./zlib/messages"),n=b("./zlib/zstream"),p=b("./zlib/gzheader"),r=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,l,n,p,F=this.strm,H=this.options.chunkSize,B=this.options.dictionary,A=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?m.Z_FINISH:m.Z_NO_FLUSH; -"string"==typeof b?F.input=k.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?F.input=new Uint8Array(b):F.input=b;F.next_in=0;F.avail_in=F.input.length;do{if(0===F.avail_out&&(F.output=new h.Buf8(H),F.next_out=0,F.avail_out=H),d=g.inflate(F,m.Z_NO_FLUSH),d===m.Z_NEED_DICT&&B&&(p="string"==typeof B?k.string2buf(B):"[object ArrayBuffer]"===r.call(B)?new Uint8Array(B):B,d=g.inflateSetDictionary(this.strm,p)),d===m.Z_BUF_ERROR&&!0===A&&(d=m.Z_OK,A=!1),d!==m.Z_STREAM_END&&d!==m.Z_OK)return this.onEnd(d), -this.ended=!0,!1;F.next_out&&(0!==F.avail_out&&d!==m.Z_STREAM_END&&(0!==F.avail_in||e!==m.Z_FINISH&&e!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(f=k.utf8border(F.output,F.next_out),l=F.next_out-f,n=k.buf2string(F.output,f),F.next_out=l,F.avail_out=H-l,l&&h.arraySet(F.output,F.output,f,l,0),this.onData(n)):this.onData(h.shrinkBuf(F.output,F.next_out))));0===F.avail_in&&0===F.avail_out&&(A=!0)}while((0c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new n;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==l.Z_OK)throw Error(m[b]); +this.header=new p;g.inflateGetHeader(this.strm,this.header)}function f(b,c){var d=new e(c);if(d.push(b,!0),d.err)throw d.msg;return d.result}var g=b("./zlib/inflate"),h=b("./utils/common"),k=b("./utils/strings"),l=b("./zlib/constants"),m=b("./zlib/messages"),n=b("./zlib/zstream"),p=b("./zlib/gzheader"),r=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,m,n,p,F=this.strm,H=this.options.chunkSize,B=this.options.dictionary,A=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?l.Z_FINISH:l.Z_NO_FLUSH; +"string"==typeof b?F.input=k.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?F.input=new Uint8Array(b):F.input=b;F.next_in=0;F.avail_in=F.input.length;do{if(0===F.avail_out&&(F.output=new h.Buf8(H),F.next_out=0,F.avail_out=H),d=g.inflate(F,l.Z_NO_FLUSH),d===l.Z_NEED_DICT&&B&&(p="string"==typeof B?k.string2buf(B):"[object ArrayBuffer]"===r.call(B)?new Uint8Array(B):B,d=g.inflateSetDictionary(this.strm,p)),d===l.Z_BUF_ERROR&&!0===A&&(d=l.Z_OK,A=!1),d!==l.Z_STREAM_END&&d!==l.Z_OK)return this.onEnd(d), +this.ended=!0,!1;F.next_out&&(0!==F.avail_out&&d!==l.Z_STREAM_END&&(0!==F.avail_in||e!==l.Z_FINISH&&e!==l.Z_SYNC_FLUSH)||("string"===this.options.to?(f=k.utf8border(F.output,F.next_out),m=F.next_out-f,n=k.buf2string(F.output,f),F.next_out=m,F.avail_out=H-m,m&&h.arraySet(F.output,F.output,f,m,0),this.onData(n)):this.onData(h.shrinkBuf(F.output,F.next_out))));0===F.avail_in&&0===F.avail_out&&(A=!0)}while((0c&&(b.subarray&&h||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;eb;b++)l[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;l[254]=l[254]=1;d.string2buf=function(b){var c,d,e,g,h,k=b.length,m=0;for(g=0;gd?1:2048>d?2:65536>d?3:4;c=new f.Buf8(m);for(g=h=0;hd?c[h++]=d:2048> -d?(c[h++]=192|d>>>6,c[h++]=128|63&d):65536>d?(c[h++]=224|d>>>12,c[h++]=128|d>>>6&63,c[h++]=128|63&d):(c[h++]=240|d>>>18,c[h++]=128|d>>>12&63,c[h++]=128|d>>>6&63,c[h++]=128|63&d);return c};d.buf2binstring=function(b){return e(b,b.length)};d.binstring2buf=function(b){for(var c=new f.Buf8(b.length),d=0,e=c.length;dg)m[f++]=g;else if(h=l[g],4g?m[f++]=g:(g-=65536,m[f++]=55296|g>>10&1023,m[f++]=56320|1023&g)}return e(m,f)};d.utf8border=function(b,c){var d;c=c||b.length;c>b.length&&(c=b.length);for(d=c-1;0<=d&&128===(192&b[d]);)d--;return 0>d?c:0===d?c:d+l[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,h){var k=65535&b|0;b=b>>>16&65535|0;for(var m=0;0!==d;){m=2E3c&&(b.subarray&&h||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;eb;b++)m[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;m[254]=m[254]=1;d.string2buf=function(b){var c,d,e,g,h,k=b.length,l=0;for(g=0;gd?1:2048>d?2:65536>d?3:4;c=new f.Buf8(l);for(g=h=0;hd?c[h++]=d:2048> +d?(c[h++]=192|d>>>6,c[h++]=128|63&d):65536>d?(c[h++]=224|d>>>12,c[h++]=128|d>>>6&63,c[h++]=128|63&d):(c[h++]=240|d>>>18,c[h++]=128|d>>>12&63,c[h++]=128|d>>>6&63,c[h++]=128|63&d);return c};d.buf2binstring=function(b){return e(b,b.length)};d.binstring2buf=function(b){for(var c=new f.Buf8(b.length),d=0,e=c.length;dg)l[f++]=g;else if(h=m[g],4g?l[f++]=g:(g-=65536,l[f++]=55296|g>>10&1023,l[f++]=56320|1023&g)}return e(l,f)};d.utf8border=function(b,c){var d;c=c||b.length;c>b.length&&(c=b.length);for(d=c-1;0<=d&&128===(192&b[d]);)d--;return 0>d?c:0===d?c:d+m[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,h){var k=65535&b|0;b=b>>>16&65535|0;for(var l=0;0!==d;){l=2E3d;d++){b=d; for(var e=0;8>e;e++)b=1&b?3988292384^b>>>1:b>>>1;c[d]=b}return c}();c.exports=function(b,c,d,k){d=k+d;for(b^=-1;k>>8^e[255&(b^c[k])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=B[c],c}function f(b){for(var c=b.length;0<=--c;)b[c]=0}function g(b){var c=b.state,d=c.pending;d>b.avail_out&&(d=b.avail_out);0!==d&&(v.arraySet(b.output,c.pending_buf,c.pending_out,d,b.next_out),b.next_out+=d,c.pending_out+=d,b.total_out+=d,b.avail_out-=d,c.pending-=d,0===c.pending&&(c.pending_out= -0))}function h(b,c){K._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function k(b,c){b.pending_buf[b.pending++]=c}function m(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function l(b,c){var d,e,f=b.max_chain_length,g=b.strstart,h=b.prev_length,k=b.nice_match,m=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,l=b.window,n=b.w_mask,D=b.prev,p=b.strstart+M,G=l[g+h-1],q=l[g+h];b.prev_length>=b.good_match&& -(f>>=2);k>b.lookahead&&(k=b.lookahead);do if(d=c,l[d+h]===q&&l[d+h-1]===G&&l[d]===l[g]&&l[++d]===l[g+1]){g+=2;d++;do;while(l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&l[++g]===l[++d]&&gh){if(b.match_start=c,h=e,e>=k)break;G=l[g+h-1];q=l[g+h]}}while((c=D[c&n])>m&&0!==--f);return h<=b.lookahead?h:b.lookahead}function n(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>= +0))}function h(b,c){K._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,c);b.block_start=b.strstart;g(b.strm)}function k(b,c){b.pending_buf[b.pending++]=c}function l(b,c){b.pending_buf[b.pending++]=c>>>8&255;b.pending_buf[b.pending++]=255&c}function m(b,c){var d,e,f=b.max_chain_length,g=b.strstart,h=b.prev_length,k=b.nice_match,l=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,n=b.w_mask,D=b.prev,p=b.strstart+M,G=m[g+h-1],q=m[g+h];b.prev_length>=b.good_match&& +(f>>=2);k>b.lookahead&&(k=b.lookahead);do if(d=c,m[d+h]===q&&m[d+h-1]===G&&m[d]===m[g]&&m[++d]===m[g+1]){g+=2;d++;do;while(m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&m[++g]===m[++d]&&gh){if(b.match_start=c,h=e,e>=k)break;G=m[g+h-1];q=m[g+h]}}while((c=D[c&n])>l&&0!==--f);return h<=b.lookahead?h:b.lookahead}function n(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>= g+(g-R)){v.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;c=d=b.hash_size;do e=b.head[--c],b.head[c]=e>=g?e-g:0;while(--d);c=d=g;do e=b.prev[--c],b.prev[c]=e>=g?e-g:0;while(--d);f+=g}if(0===b.strm.avail_in)break;c=b.strm;e=b.window;var h=b.strstart+b.lookahead,k=c.avail_in;if(d=(k>f&&(k=f),0===k?0:(c.avail_in-=k,v.arraySet(e,c.input,c.next_in,k,h),1===c.state.wrap?c.adler=F(c.adler,e,k,h):2===c.state.wrap&&(c.adler=H(c.adler,e,k,h)),c.next_in+=k,c.total_in+=k,k)), b.lookahead+=d,b.lookahead+b.insert>=E){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<=E&&(b.ins_h=(b.ins_h<< -b.hash_shift^b.window[b.strstart+E-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-R&&(b.match_length=l(b,d)),b.match_length>=E)if(e=K._tr_tally(b,b.strstart-b.match_start,b.match_length-E),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=E){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<=E)if(e=K._tr_tally(b,b.strstart-b.match_start,b.match_length-E),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=E){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<=E&&(b.ins_h=(b.ins_h<=b.match_length&&(b.strategy===T||b.match_length===E&&4096= +b.lookahead=E&&(b.ins_h=(b.ins_h<=b.match_length&&(b.strategy===T||b.match_length===E&&4096= E&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-E;e=K._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-E);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?$:Y,b.adler=2===c.wrap?0:1,c.last_flush=A,K._tr_init(c),J):e(b,P)}function t(b){var c=u(b);c===J&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=y[b.level].max_lazy,b.good_match=y[b.level].good_length,b.nice_match=y[b.level].nice_length,b.max_chain_length=y[b.level].max_chain,b.strstart=0,b.block_start= -0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=E-1,b.match_available=0,b.ins_h=0);return c}function z(b,c,d,f,g,h){if(!b)return P;var k=1;if(c===O&&(c=6),0>f?(k=0,f=-f):15g||g>x||d!==w||8>f||15c||9h||h>V)return e(b,P);8===f&&(f=9);var m=new s;return b.state=m,m.strm=b,m.wrap=k,m.gzhead=null,m.w_bits=f,m.w_size=1<f?(k=0,f=-f):15g||g>x||d!==w||8>f||15c||9h||h>V)return e(b,P);8===f&&(f=9);var l=new s;return b.state=l,l.strm=b,l.wrap=k,l.gzhead=null,l.w_bits=f,l.w_size=1<b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(n(b),0===b.lookahead&&c===A)return Q;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,h(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-R&&(h(b,!1),0===b.strm.avail_out))return Q}return b.insert=0,c===D?(h(b,!0),0===b.strm.avail_out?X:S):(b.strstart>b.block_start&&h(b,!1),Q)}),new q(4,4,8, -4,p),new q(4,5,16,8,p),new q(4,6,32,32,p),new q(4,4,16,16,r),new q(8,16,32,32,r),new q(8,16,128,128,r),new q(8,32,128,256,r),new q(32,128,258,1024,r),new q(32,258,258,4096,r)];d.deflateInit=function(b,c){return z(b,c,w,15,8,0)};d.deflateInit2=z;d.deflateReset=t;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?P:(b.state.gzhead=c,J):P};d.deflate=function(b,c){var d,l,p,G;if(!b||!b.state||5c)return b?e(b,P):P;if(l=b.state,!b.output||!b.input&&0!==b.avail_in|| -666===l.status&&c!==D)return e(b,0===b.avail_out?-5:P);if(l.strm=b,d=l.last_flush,l.last_flush=c,l.status===$)2===l.wrap?(b.adler=0,k(l,31),k(l,139),k(l,8),l.gzhead?(k(l,(l.gzhead.text?1:0)+(l.gzhead.hcrc?2:0)+(l.gzhead.extra?4:0)+(l.gzhead.name?8:0)+(l.gzhead.comment?16:0)),k(l,255&l.gzhead.time),k(l,l.gzhead.time>>8&255),k(l,l.gzhead.time>>16&255),k(l,l.gzhead.time>>24&255),k(l,9===l.level?2:2<=l.strategy||2>l.level?4:0),k(l,255&l.gzhead.os),l.gzhead.extra&&l.gzhead.extra.length&&(k(l,255&l.gzhead.extra.length), -k(l,l.gzhead.extra.length>>8&255)),l.gzhead.hcrc&&(b.adler=H(b.adler,l.pending_buf,l.pending,0)),l.gzindex=0,l.status=69):(k(l,0),k(l,0),k(l,0),k(l,0),k(l,0),k(l,9===l.level?2:2<=l.strategy||2>l.level?4:0),k(l,3),l.status=Y)):(p=w+(l.w_bits-8<<4)<<8,G=-1,G=2<=l.strategy||2>l.level?0:6>l.level?1:6===l.level?2:3,p|=G<<6,0!==l.strstart&&(p|=32),l.status=Y,m(l,p+(31-p%31)),0!==l.strstart&&(m(l,b.adler>>>16),m(l,65535&b.adler)),b.adler=1);if(69===l.status)if(l.gzhead.extra){for(p=l.pending;l.gzindex<(65535& -l.gzhead.extra.length)&&(l.pending!==l.pending_buf_size||(l.gzhead.hcrc&&l.pending>p&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p)),g(b),p=l.pending,l.pending!==l.pending_buf_size));)k(l,255&l.gzhead.extra[l.gzindex]),l.gzindex++;l.gzhead.hcrc&&l.pending>p&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p));l.gzindex===l.gzhead.extra.length&&(l.gzindex=0,l.status=73)}else l.status=73;if(73===l.status)if(l.gzhead.name){p=l.pending;do{if(l.pending===l.pending_buf_size&&(l.gzhead.hcrc&&l.pending>p&& -(b.adler=H(b.adler,l.pending_buf,l.pending-p,p)),g(b),p=l.pending,l.pending===l.pending_buf_size)){G=1;break}G=l.gzindexp&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p));0===G&&(l.gzindex=0,l.status=91)}else l.status=91;if(91===l.status)if(l.gzhead.comment){p=l.pending;do{if(l.pending===l.pending_buf_size&&(l.gzhead.hcrc&&l.pending>p&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p)),g(b), -p=l.pending,l.pending===l.pending_buf_size)){G=1;break}G=l.gzindexp&&(b.adler=H(b.adler,l.pending_buf,l.pending-p,p));0===G&&(l.status=103)}else l.status=103;if(103===l.status&&(l.gzhead.hcrc?(l.pending+2>l.pending_buf_size&&g(b),l.pending+2<=l.pending_buf_size&&(k(l,255&b.adler),k(l,b.adler>>8&255),b.adler=0,l.status=Y)):l.status=Y),0!==l.pending){if(g(b),0===b.avail_out)return l.last_flush= --1,J}else if(0===b.avail_in&&(c<<1)-(4=E&&0l.lookahead&&(l.match_length=l.lookahead)}if(l.match_length>= -E?(q=K._tr_tally(l,1,l.match_length-E),l.lookahead-=l.match_length,l.strstart+=l.match_length,l.match_length=0):(q=K._tr_tally(l,0,l.window[l.strstart]),l.lookahead--,l.strstart++),q&&(h(l,!1),0===l.strm.avail_out)){q=Q;break a}}q=(l.insert=0,c===D?(h(l,!0),0===l.strm.avail_out?X:S):l.last_lit&&(h(l,!1),0===l.strm.avail_out)?Q:W)}else q=y[l.level].func(l,c);if(q!==X&&q!==S||(l.status=666),q===Q||q===X)return 0===b.avail_out&&(l.last_flush=-1),J;if(q===W&&(1===c?K._tr_align(l):5!==c&&(K._tr_stored_block(l, -0,0,!1),3===c&&(f(l.head),0===l.lookahead&&(l.strstart=0,l.block_start=0,l.insert=0))),g(b),0===b.avail_out))return l.last_flush=-1,J}return c!==D?J:0>=l.wrap?1:(2===l.wrap?(k(l,255&b.adler),k(l,b.adler>>8&255),k(l,b.adler>>16&255),k(l,b.adler>>24&255),k(l,255&b.total_in),k(l,b.total_in>>8&255),k(l,b.total_in>>16&255),k(l,b.total_in>>24&255)):(m(l,b.adler>>>16),m(l,65535&b.adler)),g(b),0=d.w_size&&(0===h&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),k=new v.Buf8(d.w_size),v.arraySet(k,c,e-d.w_size,d.w_size,0),c=k,e=d.w_size);k=b.avail_in;l=b.next_in;m=b.input;b.avail_in=e;b.next_in= -0;b.input=c;for(n(d);d.lookahead>=E;){e=d.strstart;g=d.lookahead-(E-1);do d.ins_h=(d.ins_h<z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255,0===B)O[m++]=65535&H;else{if(!(16&B)){if(0===(64&B)){H=y[(65535&H)+(t&(1<>>=B,z-=B);15>z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255, -!(16&B)){if(0===(64&B)){H=v[(65535&H)+(t&(1<p){b.msg="invalid distance too far back";d.mode=30;break a}if(t>>>=B,z-=B,B=m-l,D>B){if(B=D-B,B>q&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(H=0,J=u,0===s){if(H+=r-B,B>3;h-=A;z-=A<<3;b.next_in=h;b.next_out=m;b.avail_in=hc)return b?e(b,P):P;if(m=b.state,!b.output||!b.input&&0!==b.avail_in|| +666===m.status&&c!==D)return e(b,0===b.avail_out?-5:P);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===$)2===m.wrap?(b.adler=0,k(m,31),k(m,139),k(m,8),m.gzhead?(k(m,(m.gzhead.text?1:0)+(m.gzhead.hcrc?2:0)+(m.gzhead.extra?4:0)+(m.gzhead.name?8:0)+(m.gzhead.comment?16:0)),k(m,255&m.gzhead.time),k(m,m.gzhead.time>>8&255),k(m,m.gzhead.time>>16&255),k(m,m.gzhead.time>>24&255),k(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),k(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(k(m,255&m.gzhead.extra.length), +k(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=H(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(k(m,0),k(m,0),k(m,0),k(m,0),k(m,0),k(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),k(m,3),m.status=Y)):(p=w+(m.w_bits-8<<4)<<8,G=-1,G=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,p|=G<<6,0!==m.strstart&&(p|=32),m.status=Y,l(m,p+(31-p%31)),0!==m.strstart&&(l(m,b.adler>>>16),l(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(p=m.pending;m.gzindex<(65535& +m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>p&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p)),g(b),p=m.pending,m.pending!==m.pending_buf_size));)k(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>p&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){p=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>p&& +(b.adler=H(b.adler,m.pending_buf,m.pending-p,p)),g(b),p=m.pending,m.pending===m.pending_buf_size)){G=1;break}G=m.gzindexp&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p));0===G&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){p=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>p&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p)),g(b), +p=m.pending,m.pending===m.pending_buf_size)){G=1;break}G=m.gzindexp&&(b.adler=H(b.adler,m.pending_buf,m.pending-p,p));0===G&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(b),m.pending+2<=m.pending_buf_size&&(k(m,255&b.adler),k(m,b.adler>>8&255),b.adler=0,m.status=Y)):m.status=Y),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush= +-1,J}else if(0===b.avail_in&&(c<<1)-(4=E&&0m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>= +E?(q=K._tr_tally(m,1,m.match_length-E),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=K._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(h(m,!1),0===m.strm.avail_out)){q=Q;break a}}q=(m.insert=0,c===D?(h(m,!0),0===m.strm.avail_out?X:S):m.last_lit&&(h(m,!1),0===m.strm.avail_out)?Q:W)}else q=y[m.level].func(m,c);if(q!==X&&q!==S||(m.status=666),q===Q||q===X)return 0===b.avail_out&&(m.last_flush=-1),J;if(q===W&&(1===c?K._tr_align(m):5!==c&&(K._tr_stored_block(m, +0,0,!1),3===c&&(f(m.head),0===m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(b),0===b.avail_out))return m.last_flush=-1,J}return c!==D?J:0>=m.wrap?1:(2===m.wrap?(k(m,255&b.adler),k(m,b.adler>>8&255),k(m,b.adler>>16&255),k(m,b.adler>>24&255),k(m,255&b.total_in),k(m,b.total_in>>8&255),k(m,b.total_in>>16&255),k(m,b.total_in>>24&255)):(l(m,b.adler>>>16),l(m,65535&b.adler)),g(b),0=d.w_size&&(0===h&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),k=new v.Buf8(d.w_size),v.arraySet(k,c,e-d.w_size,d.w_size,0),c=k,e=d.w_size);k=b.avail_in;m=b.next_in;l=b.input;b.avail_in=e;b.next_in= +0;b.input=c;for(n(d);d.lookahead>=E;){e=d.strstart;g=d.lookahead-(E-1);do d.ins_h=(d.ins_h<z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255,0===B)O[l++]=65535&H;else{if(!(16&B)){if(0===(64&B)){H=y[(65535&H)+(t&(1<>>=B,z-=B);15>z&&(t+=P[h++]<>>24,t>>>=B,z-=B,B=H>>>16&255, +!(16&B)){if(0===(64&B)){H=v[(65535&H)+(t&(1<p){b.msg="invalid distance too far back";d.mode=30;break a}if(t>>>=B,z-=B,B=l-m,D>B){if(B=D-B,B>q&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(H=0,J=u,0===s){if(H+=r-B,B>3;h-=A;z-=A<<3;b.next_in=h;b.next_out=l;b.avail_in=h>>24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function f(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=this.wsize=this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new r.Buf16(320);this.work= new r.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function g(b){var c;return b&&b.state?(c=b.state,b.total_in=b.total_out=c.total=0,b.msg="",c.wrap&&(b.adler=1&c.wrap),c.mode=v,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new r.Buf32(K),c.distcode=c.distdyn=new r.Buf32(F),c.sane=1,c.back=-1,z):y}function h(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):y}function k(b,c){var d,e;return b&&b.state?(e=b.state, -0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d- -e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whavex;){if(0===m)break a;m--;w+=f[h++]<>>8&255;d.check=s(d.check,L,2,0);x=w=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1& -d.wrap)||(((255&w)<<8)+(w>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&w)){b.msg="unknown compression method";d.mode=30;break}if(w>>>=4,x-=4,Q=(15&w)+8,0===d.wbits)d.wbits=Q;else if(Q>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<x;){if(0===m)break a;m--;w+=f[h++]<>8&1);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode=3;case 3:for(;32>x;){if(0===m)break a;m--;w+=f[h++]<>>8&255,L[2]=w>>>16&255,L[3]=w>>>24&255,d.check=s(d.check,L,4,0));x=w=0;d.mode=4;case 4:for(;16>x;){if(0===m)break a;m--;w+=f[h++]<>8);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode= -5;case 5:if(1024&d.flags){for(;16>x;){if(0===m)break a;m--;w+=f[h++]<>>8&255,d.check=s(d.check,L,2,0));x=w=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(I=d.length,I>m&&(I=m),I&&(d.head&&(Q=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,I,Q)),512&d.flags&&(d.check=s(d.check,f,I,h)),m-=I,h+=I,d.length-=I),d.length))break a;d.length=0;d.mode= -7;case 7:if(2048&d.flags){if(0===m)break a;I=0;do Q=f[h+I++],d.head&&Q&&65536>d.length&&(d.head.name+=String.fromCharCode(Q));while(Q&&Id.length&&(d.head.comment+=String.fromCharCode(Q));while(Q&&Ix;){if(0===m)break a;m--;w+=f[h++]<>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>x;){if(0===m)break a;m--;w+=f[h++]<>>= -7&x;x-=7&x;d.mode=27;break}for(;3>x;){if(0===m)break a;m--;w+=f[h++]<>>=1,x-=1,3&w){case 0:d.mode=14;break;case 1:C=d;if(H){M=void 0;n=new r.Buf32(512);p=new r.Buf32(32);for(M=0;144>M;)C.lens[M++]=8;for(;256>M;)C.lens[M++]=9;for(;280>M;)C.lens[M++]=7;for(;288>M;)C.lens[M++]=8;t(1,C.lens,0,288,n,0,C.work,{bits:9});for(M=0;32>M;)C.lens[M++]=5;t(2,C.lens,0,32,p,0,C.work,{bits:5});H=!1}C.lencode=n;C.lenbits=9;C.distcode=p;C.distbits=5;if(d.mode=20,6===c){w>>>=2;x-=2;break a}break; -case 2:d.mode=17;break;case 3:b.msg="invalid block type",d.mode=30}w>>>=2;x-=2;break;case 14:w>>>=7&x;for(x-=7&x;32>x;){if(0===m)break a;m--;w+=f[h++]<>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&w,w=0,x=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(I=d.length){if(I>m&&(I=m),I>F&&(I=F),0===I)break a;r.arraySet(g,f,h,I,k);m-=I;h+=I;F-=I;k+=I;d.length-=I;break}d.mode=12;break;case 17:for(;14>x;){if(0===m)break a;m--;w+=f[h++]<< -x;x+=8}if(d.nlen=(31&w)+257,w>>>=5,x-=5,d.ndist=(31&w)+1,w>>>=5,x-=5,d.ncode=(15&w)+4,w>>>=4,x-=4,286x;){if(0===m)break a;m--;w+=f[h++]<>>=3;x-=3}for(;19>d.have;)d.lens[fa[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,X={bits:d.lenbits},W=t(0,d.lens,0,19,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid code lengths set"; -d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have>>24,M=65535&S,!(E<=x);){if(0===m)break a;m--;w+=f[h++]<M)w>>>=E,x-=E,d.lens[d.have++]=M;else{if(16===M){for(C=E+2;x>>=E,x-=E,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}Q=d.lens[d.have-1];I=3+(3&w);w>>>=2;x-=2}else if(17===M){for(C=E+3;x>>=E;x-=E;Q=0;I=3+(7&w); -w>>>=3;x-=3}else{for(C=E+7;x>>=E;x-=E;Q=0;I=11+(127&w);w>>>=7;x-=7}if(d.have+I>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;I--;)d.lens[d.have++]=Q}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,X={bits:d.lenbits},W=t(1,d.lens,0,d.nlen,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn, -X={bits:d.distbits},W=t(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,X),d.distbits=X.bits,W){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=m&&258<=F){b.next_out=k;b.avail_out=F;b.next_in=h;b.avail_in=m;d.hold=w;d.bits=x;u(b,N);k=b.next_out;g=b.output;F=b.avail_out;h=b.next_in;f=b.input;m=b.avail_in;w=d.hold;x=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;S=d.lencode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0=== -m)break a;m--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===m)break a;m--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,d.length=M,0===C){d.mode=26;break}if(32&C){d.back=-1;d.mode=12;break}if(64&C){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&C;d.mode=22;case 22:if(d.extra){for(C=d.extra;x>>=d.extra; -x-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=23;case 23:for(;S=d.distcode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0===m)break a;m--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===m)break a;m--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,64&C){b.msg="invalid distance code";d.mode=30;break}d.offset=M;d.extra=15&C;d.mode=24;case 24:if(d.extra){for(C=d.extra;x>>=d.extra;x-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===F)break a;if(I=N-F,d.offset>I){if(I=d.offset-I,I>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}I>d.wnext?(I-=d.wnext,G=d.wsize-I):G=d.wnext-I;I>d.length&&(I=d.length);C=d.window}else C=g,G=k-d.offset,I=d.length;I>F&&(I=F);F-=I;d.length-=I;do g[k++]=C[G++];while(--I);0===d.length&& -(d.mode=21);break;case 26:if(0===F)break a;g[k++]=d.length;F--;d.mode=21;break;case 27:if(d.wrap){for(;32>x;){if(0===m)break a;m--;w|=f[h++]<x;){if(0===m)break a;m--;w+=f[h++]<d.mode&&(27>d.mode||4!==c))&&l(b,b.output,b.next_out,N-b.avail_out)?(d.mode=31,-4):(K-=b.avail_in,N-=b.avail_out,b.total_in+=K,b.total_out+=N,d.total+=N,d.wrap&&N&&(b.adler=d.check=d.flags?s(d.check,g,N,b.next_out-N):q(d.check,g,N,b.next_out-N)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode|| -15===d.mode?256:0),(0===K&&0===N||4===c)&&W===z&&(W=-5),W)};d.inflateEnd=function(b){if(!b||!b.state)return y;var c=b.state;return c.window&&(c.window=null),b.state=null,z};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?y:(d.head=c,c.done=!1,z)):y};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?y:11===d.mode&&(e=1,e=q(e,c,f,0),e!==d.check)?-3:l(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,z)):y};d.inflateInfo= +0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d- +e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whavex;){if(0===l)break a;l--;w+=f[h++]<>>8&255;d.check=s(d.check,L,2,0);x=w=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1& +d.wrap)||(((255&w)<<8)+(w>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&w)){b.msg="unknown compression method";d.mode=30;break}if(w>>>=4,x-=4,Q=(15&w)+8,0===d.wbits)d.wbits=Q;else if(Q>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<x;){if(0===l)break a;l--;w+=f[h++]<>8&1);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode=3;case 3:for(;32>x;){if(0===l)break a;l--;w+=f[h++]<>>8&255,L[2]=w>>>16&255,L[3]=w>>>24&255,d.check=s(d.check,L,4,0));x=w=0;d.mode=4;case 4:for(;16>x;){if(0===l)break a;l--;w+=f[h++]<>8);512&d.flags&&(L[0]=255&w,L[1]=w>>>8&255,d.check=s(d.check,L,2,0));x=w=0;d.mode= +5;case 5:if(1024&d.flags){for(;16>x;){if(0===l)break a;l--;w+=f[h++]<>>8&255,d.check=s(d.check,L,2,0));x=w=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(I=d.length,I>l&&(I=l),I&&(d.head&&(Q=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,h,I,Q)),512&d.flags&&(d.check=s(d.check,f,I,h)),l-=I,h+=I,d.length-=I),d.length))break a;d.length=0;d.mode= +7;case 7:if(2048&d.flags){if(0===l)break a;I=0;do Q=f[h+I++],d.head&&Q&&65536>d.length&&(d.head.name+=String.fromCharCode(Q));while(Q&&Id.length&&(d.head.comment+=String.fromCharCode(Q));while(Q&&Ix;){if(0===l)break a;l--;w+=f[h++]<>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>x;){if(0===l)break a;l--;w+=f[h++]<>>= +7&x;x-=7&x;d.mode=27;break}for(;3>x;){if(0===l)break a;l--;w+=f[h++]<>>=1,x-=1,3&w){case 0:d.mode=14;break;case 1:C=d;if(H){M=void 0;n=new r.Buf32(512);p=new r.Buf32(32);for(M=0;144>M;)C.lens[M++]=8;for(;256>M;)C.lens[M++]=9;for(;280>M;)C.lens[M++]=7;for(;288>M;)C.lens[M++]=8;t(1,C.lens,0,288,n,0,C.work,{bits:9});for(M=0;32>M;)C.lens[M++]=5;t(2,C.lens,0,32,p,0,C.work,{bits:5});H=!1}C.lencode=n;C.lenbits=9;C.distcode=p;C.distbits=5;if(d.mode=20,6===c){w>>>=2;x-=2;break a}break; +case 2:d.mode=17;break;case 3:b.msg="invalid block type",d.mode=30}w>>>=2;x-=2;break;case 14:w>>>=7&x;for(x-=7&x;32>x;){if(0===l)break a;l--;w+=f[h++]<>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&w,w=0,x=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(I=d.length){if(I>l&&(I=l),I>F&&(I=F),0===I)break a;r.arraySet(g,f,h,I,k);l-=I;h+=I;F-=I;k+=I;d.length-=I;break}d.mode=12;break;case 17:for(;14>x;){if(0===l)break a;l--;w+=f[h++]<< +x;x+=8}if(d.nlen=(31&w)+257,w>>>=5,x-=5,d.ndist=(31&w)+1,w>>>=5,x-=5,d.ncode=(15&w)+4,w>>>=4,x-=4,286x;){if(0===l)break a;l--;w+=f[h++]<>>=3;x-=3}for(;19>d.have;)d.lens[fa[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,X={bits:d.lenbits},W=t(0,d.lens,0,19,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid code lengths set"; +d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have>>24,M=65535&S,!(E<=x);){if(0===l)break a;l--;w+=f[h++]<M)w>>>=E,x-=E,d.lens[d.have++]=M;else{if(16===M){for(C=E+2;x>>=E,x-=E,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}Q=d.lens[d.have-1];I=3+(3&w);w>>>=2;x-=2}else if(17===M){for(C=E+3;x>>=E;x-=E;Q=0;I=3+(7&w); +w>>>=3;x-=3}else{for(C=E+7;x>>=E;x-=E;Q=0;I=11+(127&w);w>>>=7;x-=7}if(d.have+I>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;I--;)d.lens[d.have++]=Q}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,X={bits:d.lenbits},W=t(1,d.lens,0,d.nlen,d.lencode,0,d.work,X),d.lenbits=X.bits,W){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn, +X={bits:d.distbits},W=t(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,X),d.distbits=X.bits,W){b.msg="invalid distances set";d.mode=30;break}if(d.mode=20,6===c)break a;case 20:d.mode=21;case 21:if(6<=l&&258<=F){b.next_out=k;b.avail_out=F;b.next_in=h;b.avail_in=l;d.hold=w;d.bits=x;u(b,N);k=b.next_out;g=b.output;F=b.avail_out;h=b.next_in;f=b.input;l=b.avail_in;w=d.hold;x=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;S=d.lencode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0=== +l)break a;l--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===l)break a;l--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,d.length=M,0===C){d.mode=26;break}if(32&C){d.back=-1;d.mode=12;break}if(64&C){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&C;d.mode=22;case 22:if(d.extra){for(C=d.extra;x>>=d.extra; +x-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=23;case 23:for(;S=d.distcode[w&(1<>>24,C=S>>>16&255,M=65535&S,!(E<=x);){if(0===l)break a;l--;w+=f[h++]<>R)],E=S>>>24,C=S>>>16&255,M=65535&S,!(R+E<=x);){if(0===l)break a;l--;w+=f[h++]<>>=R;x-=R;d.back+=R}if(w>>>=E,x-=E,d.back+=E,64&C){b.msg="invalid distance code";d.mode=30;break}d.offset=M;d.extra=15&C;d.mode=24;case 24:if(d.extra){for(C=d.extra;x>>=d.extra;x-=d.extra;d.back+=d.extra}if(d.offset>d.dmax){b.msg="invalid distance too far back";d.mode=30;break}d.mode=25;case 25:if(0===F)break a;if(I=N-F,d.offset>I){if(I=d.offset-I,I>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}I>d.wnext?(I-=d.wnext,G=d.wsize-I):G=d.wnext-I;I>d.length&&(I=d.length);C=d.window}else C=g,G=k-d.offset,I=d.length;I>F&&(I=F);F-=I;d.length-=I;do g[k++]=C[G++];while(--I);0===d.length&& +(d.mode=21);break;case 26:if(0===F)break a;g[k++]=d.length;F--;d.mode=21;break;case 27:if(d.wrap){for(;32>x;){if(0===l)break a;l--;w|=f[h++]<x;){if(0===l)break a;l--;w+=f[h++]<d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,N-b.avail_out)?(d.mode=31,-4):(K-=b.avail_in,N-=b.avail_out,b.total_in+=K,b.total_out+=N,d.total+=N,d.wrap&&N&&(b.adler=d.check=d.flags?s(d.check,g,N,b.next_out-N):q(d.check,g,N,b.next_out-N)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode|| +15===d.mode?256:0),(0===K&&0===N||4===c)&&W===z&&(W=-5),W)};d.inflateEnd=function(b){if(!b||!b.state)return y;var c=b.state;return c.window&&(c.window=null),b.state=null,z};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?y:(d.head=c,c.done=!1,z)):y};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?y:11===d.mode&&(e=1,e=q(e,c,f,0),e!==d.check)?-3:m(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,z)):y};d.inflateInfo= "pako inflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(b,c,d){var e=b("../utils/common"),f=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],g=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],k=[16,16,16,16,17,17,18,18, 19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,p,r,q,s,u){var t,z,y,v,K,F,H,B;v=u.bits;for(var A=0,D=0,J=0,P=0,O=0,T=0,V=0,aa=t=0,w=0,x=null,ba=0,N=new e.Buf16(16),T=new e.Buf16(16),I=null,G=0,A=0;15>=A;A++)N[A]=0;for(D=0;DP&&(O=P),0===P)return r[q++]=20971520,r[q++]=20971520,u.bits=1,0;for(J=1;J=A;A++)if(t<<=1,t-=N[A],0>t)return-1;if(0A;A++)T[A+1]=T[A]+N[A];for(D=0;DK?(H=I[G+s[D]],B=x[ba+s[D]]):(H=96,B=0);t=1<>V)+z]=F<<24|H<<16|B|0;while(0!==z);for(t=1<>=1;if(0!==t?(w&=t-1,w+=t):w=0,D++,0===--N[A]){if(A===P)break;A=c[d+ s[D]]}if(A>O&&(w&p)!==y){0===V&&(V=O);v+=J;T=A-V;for(t=1<=t));)T++,t<<=1;if(aa+=1<>>8&255}function k(b,c,d){b.bi_valid>aa-d?(b.bi_buf|=c<>aa-b.bi_valid,b.bi_valid+=d-aa):(b.bi_buf|=c<>>=1,d<<=1;while(0<--c);return d>>>1}function n(b,c,d){var e,f=Array(V+1),g=0;for(e=1;e<=V;e++)f[e]=g=g+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=l(f[e]++,e))}function p(b){var c;for(c=0;ce?$[e]:$[256+(e>>>7)],m(b,g,d),h=G[g],0!==h&&(e-=W[g],k(b,e,h)));while(lb.heap_len;)f=b.heap[++b.heap_len]=2>m?++m:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,h&&(b.static_len-=e[2*f+1]);c.max_code=m;for(d=b.heap_len>>1;1<=d;d--)s(b,g,d);f=k;do d=b.heap[1], -b.heap[1]=b.heap[b.heap_len--],s(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,s(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var l,p,h=c.dyn_tree,k=c.max_code,G=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,C=c.stat_desc.extra_base,E=c.stat_desc.max_length,t=0;for(e=0;e<=V;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d= -b.heap_max+1;dE&&(e=E,t++),h[2*f+1]=e,f>k||(b.bl_count[e]++,l=0,f>=C&&(l=r[f-C]),p=h[2*f],b.opt_len+=p*(e+l),q&&(b.static_len+=p*(G[2*f+1]+l)));if(0!==t){do{for(e=E-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[E]--;t-=2}while(0k||(h[2*l+1]!==e&&(b.opt_len+=(e-h[2*l+1])*h[2*l],h[2*l+1]=e),f--)}n(g,m,b.bl_count)}function z(b,c,d){var e,f,g=-1,h=c[1],k=0,m=7,l=4;0===h&& -(m=138,l=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,h=c[2*(e+1)+1],++k=k?b.bl_tree[2*ba]++:b.bl_tree[2*N]++,k=0,g=f,0===h?(m=138,l=3):f===h?(m=6,l=3):(m=7,l=4))}function y(b,c,d){var e,f,g=-1,h=c[1],l=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++l=l?(m(b,ba,b.bl_tree), -k(b,l-3,3)):(m(b,N,b.bl_tree),k(b,l-11,7));l=0;g=f;0===h?(n=138,p=3):f===h?(n=6,p=3):(n=7,p=4)}}function v(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return H;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return B;for(c=32;c>>8&255}function k(b,c,d){b.bi_valid>aa-d?(b.bi_buf|=c<>aa-b.bi_valid,b.bi_valid+=d-aa):(b.bi_buf|=c<>>=1,d<<=1;while(0<--c);return d>>>1}function n(b,c,d){var e,f=Array(V+1),g=0;for(e=1;e<=V;e++)f[e]=g=g+d[e-1]<<1;for(d=0;d<=c;d++)e=b[2*d+1],0!==e&&(b[2*d]=m(f[e]++,e))}function p(b){var c;for(c=0;ce?$[e]:$[256+(e>>>7)],l(b,g,d),h=G[g],0!==h&&(e-=W[g],k(b,e,h)));while(mb.heap_len;)f=b.heap[++b.heap_len]=2>l?++l:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,h&&(b.static_len-=e[2*f+1]);c.max_code=l;for(d=b.heap_len>>1;1<=d;d--)s(b,g,d);f=k;do d=b.heap[1], +b.heap[1]=b.heap[b.heap_len--],s(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,s(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,p,h=c.dyn_tree,k=c.max_code,G=c.stat_desc.static_tree,q=c.stat_desc.has_stree,r=c.stat_desc.extra_bits,C=c.stat_desc.extra_base,E=c.stat_desc.max_length,t=0;for(e=0;e<=V;e++)b.bl_count[e]=0;h[2*b.heap[b.heap_max]+1]=0;for(d= +b.heap_max+1;dE&&(e=E,t++),h[2*f+1]=e,f>k||(b.bl_count[e]++,m=0,f>=C&&(m=r[f-C]),p=h[2*f],b.opt_len+=p*(e+m),q&&(b.static_len+=p*(G[2*f+1]+m)));if(0!==t){do{for(e=E-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[E]--;t-=2}while(0k||(h[2*m+1]!==e&&(b.opt_len+=(e-h[2*m+1])*h[2*m],h[2*m+1]=e),f--)}n(g,l,b.bl_count)}function z(b,c,d){var e,f,g=-1,h=c[1],k=0,l=7,m=4;0===h&& +(l=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=h,h=c[2*(e+1)+1],++k=k?b.bl_tree[2*ba]++:b.bl_tree[2*N]++,k=0,g=f,0===h?(l=138,m=3):f===h?(l=6,m=3):(l=7,m=4))}function y(b,c,d){var e,f,g=-1,h=c[1],m=0,n=7,p=4;0===h&&(n=138,p=3);for(e=0;e<=d;e++)if(f=h,h=c[2*(e+1)+1],!(++m=m?(l(b,ba,b.bl_tree), +k(b,m-3,3)):(l(b,N,b.bl_tree),k(b,m-11,7));m=0;g=f;0===h?(n=138,p=3):f===h?(n=6,p=3):(n=7,p=4)}}function v(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return H;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return B;for(c=32;ce;e++){Q[e]= -d;for(c=0;c<1<e;e++){W[e]=d;for(c=0;c<1<>=7;e=c;)M[2*c+1]=8,c++,h[8]++;for(;255>=c;)M[2*c+1]=9,c++,h[9]++;for(;279>=c;)M[2*c+1]=7,c++,h[7]++;for(;287>=c;)M[2*c+1]=8,c++,h[8]++;n(M,J+1,h);for(c=0;ce;e++){W[e]=d;for(c=0;c<1<>=7;e=c;)M[2*c+1]=8,c++,h[8]++;for(;255>=c;)M[2*c+1]=9,c++,h[9]++;for(;279>=c;)M[2*c+1]=7,c++,h[7]++;for(;287>=c;)M[2*c+1]=8,c++,h[8]++;n(M,J+1,h);for(c=0;c>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)K(b,c,d,e);else if(4===b.strategy||g=== f)k(b,2+(e?1:0),3),u(b,M,R);else{k(b,4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;h+=1;k(b,c-257,5);k(b,d-1,5);k(b,h-4,4);for(f=0;f>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,c--,b.dyn_ltree[2*(Y[d]+ -D+1)]++,b.dyn_dtree[2*(256>c?$[c]:$[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){k(b,2,3);m(b,w,M);16===b.bi_valid?(h(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":3}],15:[function(b,c,d){c.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler= +D+1)]++,b.dyn_dtree[2*(256>c?$[c]:$[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){k(b,2,3);l(b,w,M);16===b.bi_valid?(h(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":3}],15:[function(b,c,d){c.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler= 0}},{}],"/":[function(b,c,d){d=b("./lib/utils/common").assign;var e=b("./lib/deflate"),f=b("./lib/inflate");b=b("./lib/zlib/constants");var g={};d(g,e,f,b);c.exports=g},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")});var JSON;JSON||(JSON={}); (function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,r,q,s=f,u,t=d[a];t&&"object"===typeof t&&"function"===typeof t.toJSON&&(t=t.toJSON(a));"function"===typeof k&&(t=k.call(d,a,t));switch(typeof t){case "string":return b(t);case "number":return isFinite(t)?""+t:"null";case "boolean":case "null":return""+t; case "object":if(!t)return"null";f+=g;u=[];if("[object Array]"===Object.prototype.toString.apply(t)){q=t.length;for(e=0;enavigator.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:"5.7.0.8.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")&& 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/")|| @@ -237,15 +237,15 @@ b(e))},g)})(a[h],h);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,e;for(e in a)if(e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e)))d[e]=!c&&"object"==typeof a[e]?mxUtils.clone(a[e]):a[e]}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;ce&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);l=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),z=Math.sin(f),r=-m*(l*z+d*t),q=-m*(c*z-n*t),u=s=0,p=[],y=0;ye&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;l=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=n*c;n*=d;c*=p;d*=p;for(var t=Math.cos(f),z=Math.sin(f),r=-l*(m*z+d*t),q=-l*(c*z-n*t),u=s=0,p=[],y=0;yc&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|= mxConstants.DIRECTION_MASK_SOUTH}if(0<=d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b}, reversePortConstraints:function(a){var b=0,b=(a&mxConstants.DIRECTION_MASK_WEST)<<3,b=b|(a&mxConstants.DIRECTION_MASK_NORTH)<<1,b=b|(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|=(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0c.x&&(a=c.x,h=b.x);h>g&&(h=g);ah)return!1;var e=b.y,g=c.y,k=c.x-b.x;1E-7g&&(b=g,g=e,e=b);g>f&&(g=f);eg?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,h=a.y,k=b.x,m=b.y,e=e+k,f=f+m,c=c+ -g,d=d+h;return(eg)&&(fh)&&(ck)&&(dm)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0c.x&&(a=c.x,h=b.x);h>g&&(h=g);ah)return!1;var e=b.y,g=c.y,k=c.x-b.x;1E-7g&&(b=g,g=e,e=b);g>f&&(g=f);eg?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,h=a.y,k=b.x,l=b.y,e=e+k,f=f+l,c=c+ +g,d=d+h;return(eg)&&(fh)&&(ck)&&(dl)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"\x3d");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"\x3d"+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"\x3d"+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"\x3d"+c:a+e+b+"\x3d0";else{var f=a.indexOf(";",e),g="",g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f),g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"\x3d"+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c= 0,d=0;a==mxConstants.ALIGN_CENTER?c=-0.5:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_MIDDLE?d=-0.5:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var e=document.createElement("div");e.style.fontFamily=c;e.style.fontSize=Math.round(b)+"px";e.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+"px";e.style.position="absolute";e.style.visibility="hidden"; -e.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";e.style.zoom="1";null!=d?(e.style.width=d+"px",e.style.whiteSpace="normal"):e.style.whiteSpace="nowrap";e.innerHTML=a;document.body.appendChild(e);a=new mxRectangle(0,0,e.offsetWidth,e.offsetHeight);document.body.removeChild(e);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,h=f.isEventsEnabled();f.setEventsEnabled(!1);var k=f.drawPane,m=f.overlayPane; -a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var l=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate= -l,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=k,f.overlayPane=m,f.setEventsEnabled(h)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;c=b/d.height/(e/c);d=Math.sqrt(a);var f=Math.sqrt(c);c=d*f;d/=f;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)* +e.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";e.style.zoom="1";null!=d?(e.style.width=d+"px",e.style.whiteSpace="normal"):e.style.whiteSpace="nowrap";e.innerHTML=a;document.body.appendChild(e);a=new mxRectangle(0,0,e.offsetWidth,e.offsetHeight);document.body.removeChild(e);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,h=f.isEventsEnabled();f.setEventsEnabled(!1);var k=f.drawPane,l=f.overlayPane; +a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var m=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate= +m,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=k,f.overlayPane=l,f.setEventsEnabled(h)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;c=b/d.height/(e/c);d=Math.sqrt(a);var f=Math.sqrt(c);c=d*f;d/=f;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)* Math.ceil(d);for(f=0;g>a;){var g=Math.floor(c)/c,h=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==h&&(h=Math.floor(d-1)/d);g=g>h?g:h;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10e.x+(document.body.clientWidth||f.clientWidth))b.div.style.left=a.div.offsetLeft-d+(mxClient.IS_IE?6:-6)+"px";mxUtils.fit(b.div)}}; mxPopupMenu.prototype.addSeparator=function(a,b){a=a||this;if(this.smartSeparators&&!b)a.willAddSeparator=!0;else if(null!=a.tbody){a.willAddSeparator=!1;var c=document.createElement("tr"),d=document.createElement("td");d.className="mxPopupMenuIcon";d.style.padding="0 0 0 0px";c.appendChild(d);d=document.createElement("td");d.style.padding="0 0 0 0px";d.setAttribute("colSpan","2");var e=document.createElement("hr");e.setAttribute("size","1");d.appendChild(e);c.appendChild(d);a.tbody.appendChild(c)}}; @@ -361,10 +361,10 @@ mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSv mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0c?";stop-opacity:"+c:"";e=this.createElement("stop"); e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f}; mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0k.alpha||1>k.fillAlpha)&&m.setAttribute("opacity",k.alpha*k.fillAlpha);e=this.state.transform||"";if(g||h){var l=f=1,n=0,p=0;g&&(f=-1,n=-c-2*a);h&&(l=-1,p=-d-2*b);e+="scale("+f+","+l+")translate("+n*k.scale+","+p*k.scale+")"}0k.alpha||1>k.fillAlpha)&&l.setAttribute("opacity",k.alpha*k.fillAlpha);e=this.state.transform||"";if(g||h){var m=f=1,n=0,p=0;g&&(f=-1,n=-c-2*a);h&&(m=-1,p=-d-2*b);e+="scale("+f+","+m+")translate("+n*k.scale+","+p*k.scale+")"}0/g,"\x26gt;");a=b.value.replace(/&/g,"\x26amp;").replace(/&lt;/g, "\x26lt;").replace(/&gt;/g,"\x26gt;").replace(/&amp;/g,"\x26amp;").replace(/
/g,"\x3cbr /\x3e").replace(/
/g,"\x3chr /\x3e").replace(/(]+)>/gm,"$1 /\x3e")}return a}; @@ -391,29 +391,29 @@ mxSvgCanvas2D.prototype.createDiv=function(a,b,c,d,e){c=this.state;d="display:in mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d+="text-decoration:underline;");b==mxConstants.ALIGN_CENTER?d+="text-align:center;":b==mxConstants.ALIGN_RIGHT&&(d+="text-align:right;");b="";null!=c.fontBackgroundColor&&(b+="background-color:"+c.fontBackgroundColor+";");null!=c.fontBorderColor&&(b+="border:1px solid "+c.fontBorderColor+";");mxUtils.isNode(a)||(a=this.convertHtml(a),"fill"!=e&&"width"!=e?a='\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"display:inline-block;text-align:inherit;text-decoration:inherit;'+ b+'"\x3e'+a+"\x3c/div\x3e":d+=b);if(!mxClient.IS_IE&&document.createElementNS)return e=document.createElementNS("http://www.w3.org/1999/xhtml","div"),e.setAttribute("style",d),mxUtils.isNode(a)?this.root.ownerDocument!=document?e.appendChild(a.cloneNode(!0)):e.appendChild(a):e.innerHTML=a,e;mxUtils.isNode(a)&&this.root.ownerDocument!=document&&(a=a.outerHTML);return mxUtils.parseXml('\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"'+d+'"\x3e'+a+"\x3c/div\x3e").documentElement}; mxSvgCanvas2D.prototype.invalidateCachedOffsetSize=function(a){delete a.firstChild.mxCachedOffsetWidth;delete a.firstChild.mxCachedFinalOffsetWidth;delete a.firstChild.mxCachedFinalOffsetHeight}; -mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,h,k,m,l){if(null!=l&&null!=l.firstChild&&null!=l.firstChild.firstChild&&null!=l.firstChild.firstChild.firstChild){l=l.firstChild;var n=l.firstChild,p=n.firstChild;m=null!=m?m:0;var r=this.state;a+=r.dx;b+=r.dy;k?(p.style.maxHeight=Math.round(d)+"px",p.style.maxWidth=Math.round(c)+"px"):"fill"==h?(p.style.width=Math.round(c+1)+"px",p.style.height=Math.round(d+1)+"px"):"width"==h&&(p.style.width=Math.round(c+1)+"px",0r.alpha&&s.setAttribute("opacity",r.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");q=this.createDiv(e,f,g,q,m);if(null!=q){null!=p&&q.setAttribute("dir",p);s.appendChild(u);this.root.appendChild(s);var t=0,z=0;p=t=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y= +mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,h,k,l,m){if(null!=m&&null!=m.firstChild&&null!=m.firstChild.firstChild&&null!=m.firstChild.firstChild.firstChild){m=m.firstChild;var n=m.firstChild,p=n.firstChild;l=null!=l?l:0;var r=this.state;a+=r.dx;b+=r.dy;k?(p.style.maxHeight=Math.round(d)+"px",p.style.maxWidth=Math.round(c)+"px"):"fill"==h?(p.style.width=Math.round(c+1)+"px",p.style.height=Math.round(d+1)+"px"):"width"==h&&(p.style.width=Math.round(c+1)+"px",0r.alpha&&s.setAttribute("opacity",r.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");q=this.createDiv(e,f,g,q,l);if(null!=q){null!=p&&q.setAttribute("dir",p);s.appendChild(u);this.root.appendChild(s);var t=0,z=0;p=t=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y= document.createElement("div");y.style.cssText=q.getAttribute("style");y.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";y.style.position="absolute";y.style.visibility="hidden";z=document.createElement("div");z.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";z.style.wordWrap=mxConstants.WORD_WRAP;z.innerHTML=mxUtils.isNode(e)?e.outerHTML:e;y.appendChild(z);document.body.appendChild(y);8!=document.documentMode&&(9!=document.documentMode&&null!=r.fontBorderColor)&&(t+=2,p+=2);if(h&& -0r.alpha&&s.setAttribute("opacity",r.alpha);p=q=0;f==mxConstants.ALIGN_CENTER?q-=c/2:f==mxConstants.ALIGN_RIGHT&&(q-=c);a+=q;g==mxConstants.ALIGN_MIDDLE? -p-=d/2:g==mxConstants.ALIGN_BOTTOM&&(p-=d);"fill"!=m&&(mxClient.IS_FF&&mxClient.IS_WIN)&&(p-=2);b+=p;y=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(y+="rotate("+r.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*r.scale,(b+d/2)*r.scale,r.rotation,r.rotationCx,r.rotationCy),a=b.x-c*r.scale/2,b=b.y-d*r.scale/2):(a*=r.scale,b*=r.scale);0!=n&&(y+="rotate("+n+","+-q+","+-p+")");s.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+ -")"+y);u.setAttribute("width",Math.round(Math.max(1,c)));u.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,b,c,d,e,f,g,h,k,m,l,n),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(u),c.appendChild(a),s.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,h,m,l,n,p)}}; +0r.alpha&&s.setAttribute("opacity",r.alpha);p=q=0;f==mxConstants.ALIGN_CENTER?q-=c/2:f==mxConstants.ALIGN_RIGHT&&(q-=c);a+=q;g==mxConstants.ALIGN_MIDDLE? +p-=d/2:g==mxConstants.ALIGN_BOTTOM&&(p-=d);"fill"!=l&&(mxClient.IS_FF&&mxClient.IS_WIN)&&(p-=2);b+=p;y=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(y+="rotate("+r.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*r.scale,(b+d/2)*r.scale,r.rotation,r.rotationCx,r.rotationCy),a=b.x-c*r.scale/2,b=b.y-d*r.scale/2):(a*=r.scale,b*=r.scale);0!=n&&(y+="rotate("+n+","+-q+","+-p+")");s.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+ +")"+y);u.setAttribute("width",Math.round(Math.max(1,c)));u.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,b,c,d,e,f,g,h,k,l,m,n),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(u),c.appendChild(a),s.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,h,l,m,n,p)}}; mxSvgCanvas2D.prototype.createClip=function(a,b,c,d){a=Math.round(a);b=Math.round(b);c=Math.round(c);d=Math.round(d);for(var e="mx-clip-"+a+"-"+b+"-"+c+"-"+d,f=0,g=e+"-"+f;null!=document.getElementById(g);)g=e+"-"+ ++f;clip=this.createElement("clipPath");clip.setAttribute("id",g);e=this.createElement("rect");e.setAttribute("x",a);e.setAttribute("y",b);e.setAttribute("width",c);e.setAttribute("height",d);clip.appendChild(e);return clip}; -mxSvgCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,h,k,m,l,n){l=null!=l?l:0;h=this.state;var p=h.fontSize,r=this.createElement("g"),q=h.transform||"";this.updateFont(r);0!=l&&(q+="rotate("+l+","+this.format(a*h.scale)+","+this.format(b*h.scale)+")");null!=n&&r.setAttribute("direction",n);m&&(0h.alpha&&r.setAttribute("opacity",h.alpha);q=e.split("\n");n=Math.round(p*mxConstants.LINE_HEIGHT);var s=p+(q.length-1)*n;l=b+p-1;g==mxConstants.ALIGN_MIDDLE?"fill"==k?l-=d/2:(m=(this.matchHtmlAlignment&&m&&0h.alpha&&r.setAttribute("opacity",h.alpha);q=e.split("\n");n=Math.round(p*mxConstants.LINE_HEIGHT);var s=p+(q.length-1)*n;m=b+p-1;g==mxConstants.ALIGN_MIDDLE?"fill"==k?m-=d/2:(l=(this.matchHtmlAlignment&&l&&0t&&(t+=2*Math.PI);t%=Math.PI;t>Math.PI/2&&(t=Math.PI-t);g=Math.cos(t);var z=Math.sin(t);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",q.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);q=e;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);t=q.offsetWidth+3;q=q.offsetHeight;l?(c=Math.min(c,t), -q=Math.min(q,d)):c=t;h&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(l||"width"==m)&&q>d)q=d,e.style.height=q+"px";d=q;l=(d-d*g+c*-z)/2-p*c*(u+0.5)+n*d*(s+0.5);h=(c-c*g+d*-z)/2+n*c*(u+0.5)+p*d*(s+0.5);"group"==k.nodeName&&"DIV"==this.root.nodeName?(m=this.createElement("div"),m.style.display="inline-block",m.style.position="absolute",m.style.left=this.format(a+(h-c/2)*r.scale)+"px",m.style.top=this.format(b+(l-d/2)*r.scale)+"px",k.parentNode.appendChild(m),m.appendChild(k)):(r=8==document.documentMode&& -!mxClient.IS_EM?1:r.scale,k.style.left=this.format(a+(h-c/2)*r)+"px",k.style.top=this.format(b+(l-d/2)*r)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+n+", M12\x3d"+p+", M21\x3d"+-p+", M22\x3d"+n+", sizingMethod\x3d'auto expand')";f.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(f.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");f.appendChild(e);e.style.position="";e.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(e.style.verticalAlign= -"top",1>this.state.alpha&&(k.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,q=e.offsetHeight,mxClient.IS_QUIRKS&&(l&&q>d)&&(q=d,e.style.height=q+"px"),d=q,e.style.visibility="",r.appendChild(e),k.style.left=this.format(a+c*u*this.state.scale)+"px",k.style.top=this.format(b+d*s*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),q.style.left=100* -u+"%",q.style.top=100*s+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,h,k,m,l,n,p)}}; -mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,h,k,m,l,n,p){h=this.state;a=(a+h.dx)*h.scale;b=(b+h.dy)*h.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=h.fontColor;d.opacity=100*h.alpha+"%";c.appendChild(d);d=this.createVmlElement("path");d.textpathok="true";d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0);c.appendChild(d);d=this.createVmlElement("textpath");d.style.cssText= +"false",p.appendChild(k),this.root.appendChild(p)):this.root.appendChild(k);m?(e.style.overflow="hidden",e.style.width=Math.round(c)+"px",mxClient.IS_QUIRKS||(e.style.maxHeight=Math.round(d)+"px")):"fill"==l?(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.height=Math.max(0,d)+1+"px"):"width"==l&&(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.maxHeight=Math.max(0,d)+1+"px");if(this.rotateHtml&&0!=n){t=n*(Math.PI/180);n=parseFloat(parseFloat(Math.cos(t)).toFixed(8)); +p=parseFloat(parseFloat(Math.sin(-t)).toFixed(8));t%=2*Math.PI;0>t&&(t+=2*Math.PI);t%=Math.PI;t>Math.PI/2&&(t=Math.PI-t);g=Math.cos(t);var z=Math.sin(t);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",q.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);q=e;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);t=q.offsetWidth+3;q=q.offsetHeight;m?(c=Math.min(c,t), +q=Math.min(q,d)):c=t;h&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(m||"width"==l)&&q>d)q=d,e.style.height=q+"px";d=q;m=(d-d*g+c*-z)/2-p*c*(u+0.5)+n*d*(s+0.5);h=(c-c*g+d*-z)/2+n*c*(u+0.5)+p*d*(s+0.5);"group"==k.nodeName&&"DIV"==this.root.nodeName?(l=this.createElement("div"),l.style.display="inline-block",l.style.position="absolute",l.style.left=this.format(a+(h-c/2)*r.scale)+"px",l.style.top=this.format(b+(m-d/2)*r.scale)+"px",k.parentNode.appendChild(l),l.appendChild(k)):(r=8==document.documentMode&& +!mxClient.IS_EM?1:r.scale,k.style.left=this.format(a+(h-c/2)*r)+"px",k.style.top=this.format(b+(m-d/2)*r)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+n+", M12\x3d"+p+", M21\x3d"+-p+", M22\x3d"+n+", sizingMethod\x3d'auto expand')";f.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(f.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");f.appendChild(e);e.style.position="";e.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(e.style.verticalAlign= +"top",1>this.state.alpha&&(k.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,q=e.offsetHeight,mxClient.IS_QUIRKS&&(m&&q>d)&&(q=d,e.style.height=q+"px"),d=q,e.style.visibility="",r.appendChild(e),k.style.left=this.format(a+c*u*this.state.scale)+"px",k.style.top=this.format(b+d*s*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),q.style.left=100* +u+"%",q.style.top=100*s+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,h,k,l,m,n,p)}}; +mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,h,k,l,m,n,p){h=this.state;a=(a+h.dx)*h.scale;b=(b+h.dy)*h.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=h.fontColor;d.opacity=100*h.alpha+"%";c.appendChild(d);d=this.createVmlElement("path");d.textpathok="true";d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0);c.appendChild(d);d=this.createVmlElement("textpath");d.style.cssText= "v-text-align:"+f;d.style.align=f;d.style.fontFamily=h.fontFamily;d.string=e;d.on="true";f=h.fontSize*h.scale/this.vmlScale;d.style.fontSize=f+"px";(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold");(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic");(h.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline");e=e.split("\n");h=f+(e.length-1)*f*mxConstants.LINE_HEIGHT;f=e=0; g==mxConstants.ALIGN_BOTTOM?f=-h/2:g!=mxConstants.ALIGN_MIDDLE&&(f=h/2);null!=n&&(c.style.rotation=n,g=n*(Math.PI/180),e=Math.sin(g)*f,f*=Math.cos(g));c.appendChild(d);c.style.left=this.format(a-e)+"px";c.style.top=this.format(b+f)+"px";this.root.appendChild(c)};mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)}; function mxStencil(a){this.desc=a;this.parseDescription();this.parseConstraints()}mxStencil.defaultLocalized=!1;mxStencil.allowEval=!1;mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.prototype.aspect=null;mxStencil.prototype.w0=null;mxStencil.prototype.h0=null;mxStencil.prototype.bgNode=null;mxStencil.prototype.fgNode=null;mxStencil.prototype.strokewidth=null; @@ -452,14 +452,14 @@ mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribu mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),g=this.computeAspect(b.style,c,d,e,f,g),h=Math.min(g.width,g.height),h="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;a.setStrokeWidth(h);this.drawChildren(a,b,c,d,e,f,this.bgNode,g,!1);this.drawChildren(a,b,c,d,e,f,this.fgNode,g,!0)}; mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,h,k){if(null!=g&&0=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform(),this.updateBoundingBox();else{var a=this.createCanvas(); null!=a&&null!=a.updateText&&null!=a.invalidateCachedOffsetSize?(this.paint(a,!0),this.destroyCanvas(a),this.updateBoundingBox()):mxShape.prototype.redraw.apply(this,arguments)}else mxShape.prototype.redraw.apply(this,arguments),mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML?this.lastValue=this.value:this.lastValue=null}; mxText.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.color="black";this.valign=this.align="";this.family=mxConstants.DEFAULT_FONTFAMILY;this.size=mxConstants.DEFAULT_FONTSIZE;this.fontStyle=mxConstants.DEFAULT_FONTSTYLE;this.spacing=2;this.spacingLeft=this.spacingBottom=this.spacingRight=this.spacingTop=0;this.horizontal=!0;delete this.background;delete this.border;this.textDirection=mxConstants.DEFAULT_TEXT_DIRECTION;delete this.margin}; @@ -558,8 +558,8 @@ mxText.prototype.updateInnerHtml=function(a){if(mxUtils.isNode(this.value))a.inn mxText.prototype.updateHtmlFilter=function(){var a=this.node.style,b=this.margin.x,c=this.margin.y,d=this.scale;mxUtils.setOpacity(this.node,this.opacity);var e=0,f=0,g=null!=this.state?this.state.view.textDiv:null,h=this.node;if(null!=g){g.style.overflow="";g.style.height="";g.style.width="";this.updateFont(g);this.updateSize(g,!1);this.updateInnerHtml(g);var k=Math.round(this.bounds.width/this.scale);this.wrap&&0m&&(m+=2*Math.PI);m%=Math.PI;m>Math.PI/2&&(m=Math.PI-m);var h=Math.cos(m),l=Math.sin(-m),b=k*-(b+0.5),n=g*-(c+0.5),p=(g-g*h+k*l)/2+f*b-e*n;0!=m&&(c="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+e+", M12\x3d"+f+", M21\x3d"+-f+", M22\x3d"+e+", sizingMethod\x3d'auto expand')",a.filter=null!=a.filter&&0l&&(l+=2*Math.PI);l%=Math.PI;l>Math.PI/2&&(l=Math.PI-l);var h=Math.cos(l),m=Math.sin(-l),b=k*-(b+0.5),n=g*-(c+0.5),p=(g-g*h+k*m)/2+f*b-e*n;0!=l&&(c="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+e+", M12\x3d"+f+", M21\x3d"+-f+", M22\x3d"+e+", sizingMethod\x3d'auto expand')",a.filter=null!=a.filter&&0b)break;h=c}f=e.getIndex(a);f=Math.max(0,g-(g>f?1:0));d.add(e,a,f)}}; mxStackLayout.prototype.getParentSize=function(a){var b=this.graph.getModel(),c=b.getGeometry(a);if(null!=this.graph.container&&(null==c&&b.isLayer(a)||a==this.graph.getView().currentRoot))c=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1);return c}; mxStackLayout.prototype.execute=function(a){if(null!=a){var b=this.getParentSize(a),c=this.isHorizontal(),d=this.graph.getModel(),e=null;null!=b&&(e=c?b.height-this.marginTop-this.marginBottom:b.width-this.marginLeft-this.marginRight);var e=e-(2*this.spacing+2*this.border),f=this.x0+this.border+this.marginLeft,g=this.y0+this.border+this.marginTop;if(this.graph.isSwimlane(a)){var h=this.graph.getCellStyle(a),k=mxUtils.getNumber(h,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),h=1==mxUtils.getValue(h, -mxConstants.STYLE_HORIZONTAL,!0);null!=b&&(k=h?Math.min(k,b.height):Math.min(k,b.width));c==h&&(e-=k);h?g+=k:f+=k}d.beginUpdate();try{for(var k=0,h=null,m=0,l=null,n=d.getChildCount(a),p=0;pthis.wrap||!c&&h.y+h.height+q.height+2*this.spacing>this.wrap))h=null,c?g+=k+this.spacing:f+=k+this.spacing,k= -0;var k=Math.max(k,c?q.height:q.width),s=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(r),s=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=h?c?q.x=m+this.spacing+Math.floor(s/2):q.y=m+this.spacing+Math.floor(s/2):this.keepFirstLocation||(c?q.x=f:q.y=g);c?q.y=g:q.x=f;this.fill&&null!=e&&(c?q.height=e:q.width=e);this.setChildGeometry(r,q);l=r;h=q;m=c?h.x+h.width+Math.floor(s/2):h.y+h.height+Math.floor(s/2)}}}this.resizeParent&&null!=b&&null!=h&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a, -b,h):this.resizeLast&&(null!=b&&null!=h&&null!=l)&&(c?h.width=b.width-h.x-this.spacing-this.marginRight-this.marginLeft:h.height=b.height-h.y-this.spacing-this.marginBottom,this.setChildGeometry(l,h))}finally{d.endUpdate()}}};mxStackLayout.prototype.setChildGeometry=function(a,b){var c=this.graph.getCellGeometry(a);(null==c||b.x!=c.x||b.y!=c.y||b.width!=c.width||b.height!=c.height)&&this.graph.getModel().setGeometry(a,b)}; +mxConstants.STYLE_HORIZONTAL,!0);null!=b&&(k=h?Math.min(k,b.height):Math.min(k,b.width));c==h&&(e-=k);h?g+=k:f+=k}d.beginUpdate();try{for(var k=0,h=null,l=0,m=null,n=d.getChildCount(a),p=0;pthis.wrap||!c&&h.y+h.height+q.height+2*this.spacing>this.wrap))h=null,c?g+=k+this.spacing:f+=k+this.spacing,k= +0;var k=Math.max(k,c?q.height:q.width),s=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(r),s=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=h?c?q.x=l+this.spacing+Math.floor(s/2):q.y=l+this.spacing+Math.floor(s/2):this.keepFirstLocation||(c?q.x=f:q.y=g);c?q.y=g:q.x=f;this.fill&&null!=e&&(c?q.height=e:q.width=e);this.setChildGeometry(r,q);m=r;h=q;l=c?h.x+h.width+Math.floor(s/2):h.y+h.height+Math.floor(s/2)}}}this.resizeParent&&null!=b&&null!=h&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a, +b,h):this.resizeLast&&(null!=b&&null!=h&&null!=m)&&(c?h.width=b.width-h.x-this.spacing-this.marginRight-this.marginLeft:h.height=b.height-h.y-this.spacing-this.marginBottom,this.setChildGeometry(m,h))}finally{d.endUpdate()}}};mxStackLayout.prototype.setChildGeometry=function(a,b){var c=this.graph.getCellGeometry(a);(null==c||b.x!=c.x||b.y!=c.y||b.width!=c.width||b.height!=c.height)&&this.graph.getModel().setGeometry(a,b)}; mxStackLayout.prototype.updateParentGeometry=function(a,b,c){var d=this.isHorizontal(),e=this.graph.getModel(),f=b.clone();d?(c=c.x+c.width+this.spacing+this.marginRight,f.width=this.resizeParentMax?Math.max(f.width,c):c):(c=c.y+c.height+this.spacing+this.marginBottom,f.height=this.resizeParentMax?Math.max(f.height,c):c);(b.x!=f.x||b.y!=f.y||b.width!=f.width||b.height!=f.height)&&e.setGeometry(a,f)}; function mxPartitionLayout(a,b,c,d){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.spacing=c||0;this.border=d||0}mxPartitionLayout.prototype=new mxGraphLayout;mxPartitionLayout.prototype.constructor=mxPartitionLayout;mxPartitionLayout.prototype.horizontal=null;mxPartitionLayout.prototype.spacing=null;mxPartitionLayout.prototype.border=null;mxPartitionLayout.prototype.resizeVertices=!0;mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal}; mxPartitionLayout.prototype.moveCell=function(a,b,c){c=this.graph.getModel();var d=c.getParent(a);if(null!=a&&null!=d){for(var e=0,f=0,g=c.getChildCount(d),e=0;eb)break;f=h}}b=d.getIndex(a);b=Math.max(0,e-(e>b?1:0));c.add(d,a,b)}}; -mxPartitionLayout.prototype.execute=function(a){var b=this.isHorizontal(),c=this.graph.getModel(),d=c.getGeometry(a);if(null!=this.graph.container&&(null==d&&c.isLayer(a)||a==this.graph.getView().currentRoot))d=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1);if(null!=d){for(var e=[],f=c.getChildCount(a),g=0;ga.height&&(a.height=this.maxRankHeight[b]);for(var c=a.child;null!=c;)this.setCellHeights(c,b+1),c=c.next}; mxCompactTreeLayout.prototype.dfs=function(a,b){var c=mxCellPath.create(a),d=null;if(null!=a&&null==this.visited[c]&&!this.isVertexIgnored(a)){this.visited[c]=a;var d=this.createNode(a),c=this.graph.getModel(),e=null,f=this.graph.getEdges(a,b,this.invert,!this.invert,!1,!0),g=this.graph.getView();this.sortEdges&&this.sortOutgoingEdges(a,f);for(var h=0;hg+2*this.prefHozEdgeSep&&(f-=2*this.prefHozEdgeSep);a=f/d;b=a/2;f>g+2*this.prefHozEdgeSep&&(b+=this.prefHozEdgeSep);for(var f=this.minEdgeJetty-this.prefVertEdgeOff,g=0,h=this.getVertexBounds(c),k=0;kd/2&&(f-=this.prefVertEdgeOff);b+=a;g=Math.max(g,f)}}; +mxCompactTreeLayout.prototype.processNodeOutgoing=function(a){for(var b=a.child,c=a.cell,d=0,e=[];null!=b;){d++;var f=b.x;this.horizontal&&(f=b.y);e.push(new WeightedCellSorter(b,f));b=b.next}e.sort(WeightedCellSorter.prototype.compare);var f=a.width,g=(d+1)*this.prefHozEdgeSep;f>g+2*this.prefHozEdgeSep&&(f-=2*this.prefHozEdgeSep);a=f/d;b=a/2;f>g+2*this.prefHozEdgeSep&&(b+=this.prefHozEdgeSep);for(var f=this.minEdgeJetty-this.prefVertEdgeOff,g=0,h=this.getVertexBounds(c),k=0;kd/2&&(f-=this.prefVertEdgeOff);b+=a;g=Math.max(g,f)}}; function WeightedCellSorter(a,b){this.cell=a;this.weightedValue=b}WeightedCellSorter.prototype.weightedValue=0;WeightedCellSorter.prototype.nudge=!1;WeightedCellSorter.prototype.visited=!1;WeightedCellSorter.prototype.rankIndex=null;WeightedCellSorter.prototype.cell=null;WeightedCellSorter.prototype.compare=function(a,b){return null!=a&&null!=b?b.weightedValue>a.weightedValue?1:b.weightedValued.theta&&ethis.forceConstant&&(this.forceConstant= -0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;db&&(b=0.001);var c=this.dispX[a]/b*Math.min(b,this.temperature),b=this.dispY[a]/b*Math.min(b,this.temperature);this.dispX[a]=0;this.dispY[a]=0;this.cellLocation[a][0]+=c;this.cellLocation[a][1]+=b}}; mxFastOrganicLayout.prototype.calcAttraction=function(){for(var a=0;athis.maxDistanceLimit||(ga?a+"-"+c:c+"-"+a):null}; mxParallelEdgeLayout.prototype.layout=function(a){var b=a[0],c=this.graph.getView(),d=this.graph.getModel(),e=d.getGeometry(c.getVisibleTerminal(b,!0)),d=d.getGeometry(c.getVisibleTerminal(b,!1));if(e==d)for(var b=e.x+e.width+this.spacing,c=e.y+e.height/2,f=0;fmxUtils.indexOf(k.connectsAsTarget,g)&&k.connectsAsTarget.push(g))}}c[d].temp[0]=1}}mxGraphHierarchyModel.prototype.maxRank=null;mxGraphHierarchyModel.prototype.vertexMapper=null;mxGraphHierarchyModel.prototype.edgeMapper=null;mxGraphHierarchyModel.prototype.ranks=null;mxGraphHierarchyModel.prototype.roots=null;mxGraphHierarchyModel.prototype.parent=null; mxGraphHierarchyModel.prototype.dfsCount=0;mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1E8;mxGraphHierarchyModel.prototype.tightenToSource=!1; mxGraphHierarchyModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=0;e=k.length){for(var h= -new mxGraphHierarchyEdge(k),m=0;mmxUtils.indexOf(c[e].connectsAsSource,h)&&c[e].connectsAsSource.push(h)}}}c[e].temp[0]=0}}; -mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;bc.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1mxUtils.indexOf(c[e].connectsAsSource,h)&&c[e].connectsAsSource.push(h)}}}c[e].temp[0]=0}}; +mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;bc.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1mxUtils.indexOf(k.connectsAsTarget,g)&&k.connectsAsTarget.push(g))}}c[d].temp[0]=1}}mxSwimlaneModel.prototype.maxRank=null;mxSwimlaneModel.prototype.vertexMapper=null;mxSwimlaneModel.prototype.edgeMapper=null;mxSwimlaneModel.prototype.ranks=null;mxSwimlaneModel.prototype.roots=null;mxSwimlaneModel.prototype.parent=null;mxSwimlaneModel.prototype.dfsCount=0; mxSwimlaneModel.prototype.SOURCESCANSTARTRANK=1E8;mxGraphHierarchyModel.prototype.tightenToSource=!1;mxSwimlaneModel.prototype.ranksPerGroup=null; -mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f=m.length){for(var k=new mxGraphHierarchyEdge(m),l=0;lmxUtils.indexOf(c[f].connectsAsSource,k)&&c[f].connectsAsSource.push(k)}}}c[f].temp[0]=0}}; +mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f=l.length){for(var k=new mxGraphHierarchyEdge(l),m=0;mmxUtils.indexOf(c[f].connectsAsSource,k)&&c[f].connectsAsSource.push(k)}}}c[f].temp[0]=0}}; mxSwimlaneModel.prototype.initialRank=function(){this.ranksPerGroup=[];var a=[],b={};if(null!=this.roots)for(var c=0;cb[d.swimlaneIndex]&&(h=b[d.swimlaneIndex]);d.temp[0]=h;if(null!=f)for(c=0;cc.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1c.maxRank&&0>c.minRank)&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1>1,++e[k]}return c}; -mxMedianHybridCrossingReduction.prototype.transpose=function(a,b){for(var c=!0,d=0;c&&10>d++;)for(var e=1==a%2&&1==d%2,c=!1,f=0;fl&&(l=k);h[l]=m}for(var n=l=m=null,p=null,r=null,q=null,s=null,u=null,t=null,z=null,k=0;ks[F]&&v++,r[y]u[F]&&v++,q[y]d++;)for(var e=1==a%2&&1==d%2,c=!1,f=0;fm&&(m=k);h[m]=l}for(var n=m=l=null,p=null,r=null,q=null,s=null,u=null,t=null,z=null,k=0;ks[F]&&v++,r[y]u[F]&&v++,q[y]a.medianValue?-1:b.medianValueu+1&&(m==d[k].length-1?(e.setGeneralPurposeVariable(k,t),n=!0):(m=d[k][m+1],u=m.getGeneralPurposeVariable(k),u=u-m.width/2-this.intraCellSpacing-e.width/2,u>t?(e.setGeneralPurposeVariable(k, -t),n=!0):u>e.getGeneralPurposeVariable(k)+1&&(e.setGeneralPurposeVariable(k,u),n=!0)));if(n){for(e=0;eu+1&&(l==d[k].length-1?(e.setGeneralPurposeVariable(k,t),n=!0):(l=d[k][l+1],u=l.getGeneralPurposeVariable(k),u=u-l.width/2-this.intraCellSpacing-e.width/2,u>t?(e.setGeneralPurposeVariable(k, +t),n=!0):u>e.getGeneralPurposeVariable(k)+1&&(e.setGeneralPurposeVariable(k,u),n=!0)));if(n){for(e=0;e=h&&k<=p?g.setGeneralPurposeVariable(a,k):kp&&(g.setGeneralPurposeVariable(a,p),this.currentXDelta+=k-p);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d=h&&k<=p?g.setGeneralPurposeVariable(a,k):kp&&(g.setGeneralPurposeVariable(a,p),this.currentXDelta+=k-p);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;dthis.widestRankValue&&(this.widestRankValue=h,this.widestRank=e);this.rankWidths[e]=h}!0==k&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;h=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+h:c- -h;for(m=0;me.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,h=0,k=e.minRank+2;ke.minRank+1;k--)p=e.getX(k-1),n==p?(l[k-e.minRank-2]=n,g++):this.repositionValid(b,e,k-1,n)?(l[k-e.minRank-2]=n,g++):(l[k-e.minRank-2]=e.getX(k-1),n=p);if(g>h||f>h)if(g>=f)for(k=e.maxRank-2;k>e.minRank;k--)e.setX(k,l[k-e.minRank-1]);else if(f>g)for(k=e.minRank+2;kthis.widestRankValue&&(this.widestRankValue=h,this.widestRank=e);this.rankWidths[e]=h}!0==k&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;h=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+h:c- +h;for(l=0;le.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,h=0,k=e.minRank+2;ke.minRank+1;k--)p=e.getX(k-1),n==p?(m[k-e.minRank-2]=n,g++):this.repositionValid(b,e,k-1,n)?(m[k-e.minRank-2]=n,g++):(m[k-e.minRank-2]=e.getX(k-1),n=p);if(g>h||f>h)if(g>=f)for(k=e.maxRank-2;k>e.minRank;k--)e.setX(k,m[k-e.minRank-1]);else if(f>g)for(k=e.minRank+2;ke)return!1;f=b.getGeneralPurposeVariable(c);if(df){if(e==a.length-1)return!0;a=a[e+1];c=a.getGeneralPurposeVariable(c);c=c-a.width/2-this.intraCellSpacing-b.width/2;if(!(c>=d))return!1}return!0}; mxCoordinateAssignment.prototype.setCellLocations=function(a,b){this.rankTopY=[];this.rankBottomY=[];for(var c=0;ch;h++){if(-1(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(l+=this.prefHozEdgeSep,n-=this.prefHozEdgeSep);k=(n-l)/f;l+=k/2;n=this.minEdgeJetty-this.prefVertEdgeOff;for(m=p=0;mf/2&&(n-=this.prefVertEdgeOff);for(s=0;sh;h++){if(-1(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(m+=this.prefHozEdgeSep,n-=this.prefHozEdgeSep);k=(n-m)/f;m+=k/2;n=this.minEdgeJetty-this.prefVertEdgeOff;for(l=p=0;lf/2&&(n-=this.prefVertEdgeOff);for(s=0;sa.weightedValue?-1:b.weightedValuef&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; +mxHierarchicalLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var h=b[g];if(d.isVertex(h)&&this.graph.isCellVisible(h)){for(var k=this.getEdges(h),l=0,m=0,n=0;nf&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; mxHierarchicalLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;for(var c=this.graph.model,b=[],d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;ff&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; +mxSwimlaneLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var h=b[g];if(null!=h&&d.isVertex(h)&&this.graph.isCellVisible(h)&&d.isAncestor(a,h)){for(var k=this.getEdges(h),l=0,m=0,n=0;nf&&(f=k,e=h)}}0==c.length&&null!=e&&c.push(e)}return c}; mxSwimlaneLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;for(var c=this.graph.model,b=[],d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;f=this.swimlanes.length)&&(p>h||(!b||n)&&p==h))e= -this.traverse(l,b,m[c],d,e,f,g,p)}}else if(null==e[k])for(c=0;c=this.swimlanes.length)&&(p>h||(!b||n)&&p==h))e= +this.traverse(m,b,l[c],d,e,f,g,p)}}else if(null==e[k])for(c=0;cb[e]?1:-1:(c=parseInt(a[e]),e=parseInt(b[e]),d=c==e?0:c>e?1:-1);break}0==d&&(c=a.length,e=b.length,c!=e&&(d=c>e?1:-1));return d}},mxPerimeter={RectanglePerimeter:function(a,b,c,d){b=a.getCenterX();var e=a.getCenterY(),f=Math.atan2(c.y-e,c.x-b),g=new mxPoint(0,0),h=Math.PI,k=Math.PI/2-f,m=Math.atan2(a.height,a.width);f<-h+m||f>h-m?(g.x=a.x,g.y=e-a.width* -Math.tan(f)/2):f<-m?(g.y=a.y,g.x=b-a.height*Math.tan(k)/2):f=a.x&&c.x<=a.x+a.width?g.x=c.x:c.y>=a.y&&c.y<=a.y+a.height&&(g.y=c.y),c.xa.x+a.width&&(g.x=a.x+a.width),c.ya.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width/2,h=a.height/2,k=e+g,m=f+h;b=c.x;c=c.y;var l=parseInt(b-k),n=parseInt(c-m);if(0==l&&0!=n)return new mxPoint(k, -m+h*n/Math.abs(n));if(0==l&&0==n)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-m,a=Math.sqrt(g*g*(1-a*a/(h*h)))||0,b<=e&&(a=-a),new mxPoint(k+a,c);if(b>=e&&b<=e+a.width)return a=b-k,a=Math.sqrt(h*h*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,m+a)}e=n/l;m-=e*k;f=g*g*e*e+h*h;a=-2*k*f;h=Math.sqrt(a*a-4*f*(g*g*e*e*k*k+h*h*k*k-g*g*h*h));g=(-a+h)/(2*f);h=(-a-h)/(2*f);k=e*g+m;m=e*h+m;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(k-c,2));b=Math.sqrt(Math.pow(h-b,2)+Math.pow(m-c,2));f=c=0;ec?new mxPoint(g,e):new mxPoint(g,e+a);if(h==c)return g>k?new mxPoint(b,h):new mxPoint(b+f,h);var m=g,l=h;d&&(k>=b&&k<=b+f?m=k:c>=e&&c<=e+a&&(l=c));return k-s&&rMath.PI-s,s=null;q?s=d&&(e&&c.x>=l.x&&c.x<=p.x||!e&&c.y>=l.y&&c.y<=p.y)?e?new mxPoint(c.x,l.y):new mxPoint(l.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+h/2+a*Math.tan(r)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+h/2-a*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+h,g+a/2+h*Math.tan(r)/2):new mxPoint(f, -g+a/2-h*Math.tan(r)/2):(d&&(d=new mxPoint(k,m),c.y>=g&&c.y<=g+a?(d.x=e?k:b==mxConstants.DIRECTION_WEST?f+h:f,d.y=c.y):c.x>=f&&c.x<=f+h&&(d.x=c.x,d.y=!e?m:b==mxConstants.DIRECTION_NORTH?g+a:g),k=d.x,m=d.y),s=e&&c.x<=f+h/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,k,m,l.x,l.y,n.x,n.y):mxUtils.intersection(c.x,c.y,k,m,n.x,n.y,p.x,p.y));null==s&&(s=new mxPoint(k,m));return s},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();var m=c.x,l=c.y,n= --Math.atan2(l-a,m-k),p=Math.PI,r=Math.PI/2,q=new mxPoint(k,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var s=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;q=new mxPoint;if(mf+h||m>e+g&&le+g&&l>f+h)d=!1;if(d){if(s){if(m==k){if(l<=f)return new mxPoint(k,f);if(l>=f+h)return new mxPoint(k,f+h)}else if(me+g){if(l==f+h/4)return new mxPoint(e+g,f+h/4);if(l==f+3*h/4)return new mxPoint(e+g,f+3*h/4)}else if(m==e){if(la)return new mxPoint(e,f+3*h/4)}else if(m==e+g){if(la)return new mxPoint(e+g,f+3*h/4)}if(l==f)return new mxPoint(k,f);if(l==f+h)return new mxPoint(k,f+h);mf+h/4&&lf+3*h/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+Math.floor(1.25*h))):m>k&&(l>f+h/4&&lf+3*h/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))))}else{if(l==a){if(m<=e)return new mxPoint(e,f+h/2);if(m>=e+g)return new mxPoint(e+g,f+h/ -2)}else if(lf+h){if(m==e+g/4)return new mxPoint(e+g/4,f+h);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f+h)}else if(l==f){if(mk)return new mxPoint(e+3*g/4,f)}else if(l==f+h){if(ma)return new mxPoint(e+3*g/4,f+h)}if(m==e)return new mxPoint(e,a);if(m==e+g)return new mxPoint(e+g,a);le+g/4&&me+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f+h)):l>a&&(m>e+g/4&&me+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)))}d= -k;n=a;m>=e&&m<=e+g?(d=m,n=l=f&&l<=f+h&&(n=l,d=m-m?(b=new mxPoint(e+g,f), -q=new mxPoint(e+g,f+h)):n>m&&nr&&np-m&&n<=p||n<-p+m&&n>=-p?(b=new mxPoint(e,f),q=new mxPoint(e,f+h)):n<-m&&n>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))):n<-r&&n>-p+m&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+ -Math.floor(1.25*h)))}else{m=Math.atan2(h/2,g/4);if(n==m)return new mxPoint(e+Math.floor(0.75*g),f);if(n==p-m)return new mxPoint(e+Math.floor(0.25*g),f);if(n==p||n==-p)return new mxPoint(e,f+Math.floor(0.5*h));if(0==n)return new mxPoint(e+g,f+Math.floor(0.5*h));if(n==-m)return new mxPoint(e+Math.floor(0.75*g),f+h);if(n==-p+m)return new mxPoint(e+Math.floor(0.25*g),f+h);0m&&np-m&&nn&&n>-m?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)):n<-m&&n>-p+m?(b=new mxPoint(e,f+h),q=new mxPoint(e+g,f+h)):n<-p+m&&n>-p&&(b=new mxPoint(e-Math.floor(0.25*g),f),q=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)))}q=mxUtils.intersection(k,a,c.x,c.y,b.x,b.y,q.x,q.y)}return null==q?new mxPoint(k,a):q}}; +return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;eb[e]?1:-1:(c=parseInt(a[e]),e=parseInt(b[e]),d=c==e?0:c>e?1:-1);break}0==d&&(c=a.length,e=b.length,c!=e&&(d=c>e?1:-1));return d}},mxPerimeter={RectanglePerimeter:function(a,b,c,d){b=a.getCenterX();var e=a.getCenterY(),f=Math.atan2(c.y-e,c.x-b),g=new mxPoint(0,0),h=Math.PI,k=Math.PI/2-f,l=Math.atan2(a.height,a.width);f<-h+l||f>h-l?(g.x=a.x,g.y=e-a.width* +Math.tan(f)/2):f<-l?(g.y=a.y,g.x=b-a.height*Math.tan(k)/2):f=a.x&&c.x<=a.x+a.width?g.x=c.x:c.y>=a.y&&c.y<=a.y+a.height&&(g.y=c.y),c.xa.x+a.width&&(g.x=a.x+a.width),c.ya.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width/2,h=a.height/2,k=e+g,l=f+h;b=c.x;c=c.y;var m=parseInt(b-k),n=parseInt(c-l);if(0==m&&0!=n)return new mxPoint(k, +l+h*n/Math.abs(n));if(0==m&&0==n)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-l,a=Math.sqrt(g*g*(1-a*a/(h*h)))||0,b<=e&&(a=-a),new mxPoint(k+a,c);if(b>=e&&b<=e+a.width)return a=b-k,a=Math.sqrt(h*h*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,l+a)}e=n/m;l-=e*k;f=g*g*e*e+h*h;a=-2*k*f;h=Math.sqrt(a*a-4*f*(g*g*e*e*k*k+h*h*k*k-g*g*h*h));g=(-a+h)/(2*f);h=(-a-h)/(2*f);k=e*g+l;l=e*h+l;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(k-c,2));b=Math.sqrt(Math.pow(h-b,2)+Math.pow(l-c,2));f=c=0;ec?new mxPoint(g,e):new mxPoint(g,e+a);if(h==c)return g>k?new mxPoint(b,h):new mxPoint(b+f,h);var l=g,m=h;d&&(k>=b&&k<=b+f?l=k:c>=e&&c<=e+a&&(m=c));return k-s&&rMath.PI-s,s=null;q?s=d&&(e&&c.x>=m.x&&c.x<=p.x||!e&&c.y>=m.y&&c.y<=p.y)?e?new mxPoint(c.x,m.y):new mxPoint(m.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+h/2+a*Math.tan(r)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+h/2-a*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+h,g+a/2+h*Math.tan(r)/2):new mxPoint(f, +g+a/2-h*Math.tan(r)/2):(d&&(d=new mxPoint(k,l),c.y>=g&&c.y<=g+a?(d.x=e?k:b==mxConstants.DIRECTION_WEST?f+h:f,d.y=c.y):c.x>=f&&c.x<=f+h&&(d.x=c.x,d.y=!e?l:b==mxConstants.DIRECTION_NORTH?g+a:g),k=d.x,l=d.y),s=e&&c.x<=f+h/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,k,l,m.x,m.y,n.x,n.y):mxUtils.intersection(c.x,c.y,k,l,n.x,n.y,p.x,p.y));null==s&&(s=new mxPoint(k,l));return s},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,h=a.height,k=a.getCenterX();a=a.getCenterY();var l=c.x,m=c.y,n= +-Math.atan2(m-a,l-k),p=Math.PI,r=Math.PI/2,q=new mxPoint(k,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var s=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;q=new mxPoint;if(lf+h||l>e+g&&me+g&&m>f+h)d=!1;if(d){if(s){if(l==k){if(m<=f)return new mxPoint(k,f);if(m>=f+h)return new mxPoint(k,f+h)}else if(le+g){if(m==f+h/4)return new mxPoint(e+g,f+h/4);if(m==f+3*h/4)return new mxPoint(e+g,f+3*h/4)}else if(l==e){if(ma)return new mxPoint(e,f+3*h/4)}else if(l==e+g){if(ma)return new mxPoint(e+g,f+3*h/4)}if(m==f)return new mxPoint(k,f);if(m==f+h)return new mxPoint(k,f+h);lf+h/4&&mf+3*h/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+Math.floor(1.25*h))):l>k&&(m>f+h/4&&mf+3*h/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))))}else{if(m==a){if(l<=e)return new mxPoint(e,f+h/2);if(l>=e+g)return new mxPoint(e+g,f+h/ +2)}else if(mf+h){if(l==e+g/4)return new mxPoint(e+g/4,f+h);if(l==e+3*g/4)return new mxPoint(e+3*g/4,f+h)}else if(m==f){if(lk)return new mxPoint(e+3*g/4,f)}else if(m==f+h){if(la)return new mxPoint(e+3*g/4,f+h)}if(l==e)return new mxPoint(e,a);if(l==e+g)return new mxPoint(e+g,a);me+g/4&&le+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f+h)):m>a&&(l>e+g/4&&le+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)))}d= +k;n=a;l>=e&&l<=e+g?(d=l,n=m=f&&m<=f+h&&(n=m,d=l-l?(b=new mxPoint(e+g,f), +q=new mxPoint(e+g,f+h)):n>l&&nr&&np-l&&n<=p||n<-p+l&&n>=-p?(b=new mxPoint(e,f),q=new mxPoint(e,f+h)):n<-l&&n>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e,f+Math.floor(1.25*h))):n<-r&&n>-p+l&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*h)),q=new mxPoint(e+g,f+ +Math.floor(1.25*h)))}else{l=Math.atan2(h/2,g/4);if(n==l)return new mxPoint(e+Math.floor(0.75*g),f);if(n==p-l)return new mxPoint(e+Math.floor(0.25*g),f);if(n==p||n==-p)return new mxPoint(e,f+Math.floor(0.5*h));if(0==n)return new mxPoint(e+g,f+Math.floor(0.5*h));if(n==-l)return new mxPoint(e+Math.floor(0.75*g),f+h);if(n==-p+l)return new mxPoint(e+Math.floor(0.25*g),f+h);0l&&np-l&&nn&&n>-l?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)),q=new mxPoint(e+Math.floor(1.25*g),f)):n<-l&&n>-p+l?(b=new mxPoint(e,f+h),q=new mxPoint(e+g,f+h)):n<-p+l&&n>-p&&(b=new mxPoint(e-Math.floor(0.25*g),f),q=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*h)))}q=mxUtils.intersection(k,a,c.x,c.y,b.x,b.y,q.x,q.y)}return null==q?new mxPoint(k,a):q}}; function mxStylesheet(){this.styles={};this.putDefaultVertexStyle(this.createDefaultVertexStyle());this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())} mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a}; mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)}; @@ -912,18 +912,18 @@ mxCellEditor.prototype.resize=function(){var a=this.graph.getView().getState(thi (this.textarea.style.left=Math.round(this.bounds.x)+"px",this.textarea.style.top=Math.round(this.bounds.y)+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x+1))+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y+1))+"px"),this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!=this.getEmptyLabelText()?(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal","fill"!=a.style[mxConstants.STYLE_OVERFLOW]&& (this.textarea.style.width=Math.round(this.bounds.width/c)+this.wordWrapPadding+"px")):(this.textarea.style.whiteSpace="nowrap","fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&(this.textarea.style.width=""));else{var e=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null),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))); if(b)this.bounds=new mxRectangle(a.absoluteOffset.x,a.absoluteOffset.y,0,0),null!=e&&(e=(parseFloat(e)+2)*c,this.bounds.width=e,this.bounds.x+=d.x*e);else{var b=mxRectangle.fromRectangle(a),f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=null!=a.shape&&f==mxConstants.ALIGN_CENTER&&g==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(b):b;null!=e&&(b.width=parseFloat(e)* -c);if(!a.view.graph.cellRenderer.legacySpacing||"width"!=a.style[mxConstants.STYLE_OVERFLOW])var f=parseInt(a.style[mxConstants.STYLE_SPACING]||2)*c,h=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,k=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,m=(parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)* -c+f,f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=new mxRectangle(b.x+l,b.y+h,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?l+k:0),b.height-(g==mxConstants.ALIGN_MIDDLE?h+m:0));this.bounds=new mxRectangle(b.x+a.absoluteOffset.x,b.y+a.absoluteOffset.y,b.width,b.height)}this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!= +c);if(!a.view.graph.cellRenderer.legacySpacing||"width"!=a.style[mxConstants.STYLE_OVERFLOW])var f=parseInt(a.style[mxConstants.STYLE_SPACING]||2)*c,h=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,k=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*c+f,m=(parseInt(a.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)* +c+f,f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=new mxRectangle(b.x+m,b.y+h,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?m+k:0),b.height-(g==mxConstants.ALIGN_MIDDLE?h+l:0));this.bounds=new mxRectangle(b.x+a.absoluteOffset.x,b.y+a.absoluteOffset.y,b.width,b.height)}this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!= this.getEmptyLabelText()?(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal",e=Math.round(this.bounds.width/c)+this.wordWrapPadding,this.textarea.style.width=e+"px",this.textarea.scrollWidth>e&&(this.textarea.style.width=this.textarea.scrollWidth+"px")):(this.textarea.style.whiteSpace="nowrap",this.textarea.style.width="");8==document.documentMode&&(this.textarea.style.zoom="1",this.textarea.style.height="auto");a=this.textarea.scrollWidth;e=this.textarea.scrollHeight; 8==document.documentMode?(this.textarea.style.left=Math.max(0,Math.ceil((this.bounds.x-d.x*(this.bounds.width-(a+1)*c)+0*a*(c-1)+2*(d.x+0.5))/c))+"px",this.textarea.style.top=Math.max(0,Math.ceil((this.bounds.y-d.y*(this.bounds.height-(e+0.5)*c)+0*e*(c-1)+1*Math.abs(d.y+0.5))/c))+"px",this.textarea.style.width=Math.round(a*c)+"px",this.textarea.style.height=Math.round(e*c)+"px"):mxClient.IS_QUIRKS?(this.textarea.style.left=Math.max(0,Math.ceil(this.bounds.x-d.x*(this.bounds.width-(a+1)*c)+0*a*(c- 1)+2*(d.x+0.5)))+"px",this.textarea.style.top=Math.max(0,Math.ceil(this.bounds.y-d.y*(this.bounds.height-(e+0.5)*c)+0*e*(c-1)+1*Math.abs(d.y+0.5)))+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-d.x*(this.bounds.width-2))+1)+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-d.y*(this.bounds.height-4)+(-1==d.y?3:0))+1)+"px")}mxClient.IS_VML?this.textarea.style.zoom=c:(mxUtils.setPrefixedStyle(this.textarea.style,"transformOrigin","0px 0px"),mxUtils.setPrefixedStyle(this.textarea.style, "transform","scale("+c+","+c+")"+(null==d?"":" translate("+100*d.x+"%,"+100*d.y+"%)")))}};mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())};mxCellEditor.prototype.getBackgroundColor=function(a){return null}; mxCellEditor.prototype.startEditing=function(a,b){this.stopEditing(!0);null==this.textarea&&this.init();null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.hideTooltip();var c=this.graph.getView().getState(a);if(null!=c){this.graph.getView();var d=mxUtils.getValue(c.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),e=mxUtils.getValue(c.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(c.style,mxConstants.STYLE_FONTCOLOR,"black"),g=mxUtils.getValue(c.style, -mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),h=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,m=(mxUtils.getValue(c.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.backgroundColor=this.getBackgroundColor(c);this.textarea.style.textDecoration=m?"underline":"";this.textarea.style.fontWeight=h?"bold":"normal";this.textarea.style.fontStyle=k?"italic":"";this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.zIndex=this.zIndex;this.textarea.style.fontFamily=e;this.textarea.style.textAlign=g;this.textarea.style.outline="none";this.textarea.style.color=f;d=this.textDirection=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION, +mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),h=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,l=(mxUtils.getValue(c.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.backgroundColor=this.getBackgroundColor(c);this.textarea.style.textDecoration=l?"underline":"";this.textarea.style.fontWeight=h?"bold":"normal";this.textarea.style.fontStyle=k?"italic":"";this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.zIndex=this.zIndex;this.textarea.style.fontFamily=e;this.textarea.style.textAlign=g;this.textarea.style.outline="none";this.textarea.style.color=f;d=this.textDirection=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION, mxConstants.DEFAULT_TEXT_DIRECTION);d==mxConstants.TEXT_DIRECTION_AUTO&&null!=c&&(null!=c.text&&c.text.dialect!=mxConstants.DIALECT_STRICTHTML&&!mxUtils.isNode(c.text.value))&&(d=c.text.getAutoDirection());d==mxConstants.TEXT_DIRECTION_LTR||d==mxConstants.TEXT_DIRECTION_RTL?this.textarea.setAttribute("dir",d):this.textarea.removeAttribute("dir");this.textarea.innerHTML=this.getInitialValue(c,b)||"";this.initialValue=this.textarea.innerHTML;0==this.textarea.innerHTML.length||"\x3cbr\x3e"==this.textarea.innerHTML? (this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=this.textarea.innerHTML==this.getEmptyLabelText();this.graph.container.appendChild(this.textarea);this.editingCell=a;this.trigger=b;this.textNode=null;null!=c.text&&this.isHideLabel(c)&&(this.textNode=c.text.node,this.textNode.style.visibility="hidden");this.autoSize&&(this.graph.model.isEdge(c.cell)||"fill"!=c.style[mxConstants.STYLE_OVERFLOW])&&window.setTimeout(mxUtils.bind(this,function(){this.resize()}), -0);this.resize();try{this.textarea.focus(),this.isSelectText()&&(0=k.x:null!=c&&(h=c.x+c.width=a.x:null!=b&&(k=b.x+b.widthb.x+b.width?null!=c?(d=c.x,m=Math.max(Math.abs(k-c.y),m)):a==mxConstants.DIRECTION_NORTH? -k=b.y-2*h:a==mxConstants.DIRECTION_SOUTH?k=b.y+b.height+2*h:d=a==mxConstants.DIRECTION_EAST?b.x-2*m:b.x+b.width+2*m:null!=c&&(d=f.getRoutingCenterX(b),h=Math.max(Math.abs(d-c.x),m),k=c.y,m=0);e.push(new mxPoint(d-h,k-m));e.push(new mxPoint(d+h,k+m))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0l,h=f.xm;else k=Math.max(b.x,c.x),m=Math.min(b.x+b.width,c.x+c.width),g=k==m,g||(h=Math.max(b.y,c.y),l=Math.min(b.y+b.height,c.y+c.height),h=h==l);!h&&(g||a.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL)?mxEdgeStyle.TopToBottom(a,b,c,d,e):mxEdgeStyle.SideToSide(a,b,c,d,e)},SideToSide:function(a,b,c,d,e){var f=a.view;d=null!=d&&0=k.x:null!=c&&(h=c.x+c.width=a.x:null!=b&&(k=b.x+b.widthb.x+b.width?null!=c?(d=c.x,l=Math.max(Math.abs(k-c.y),l)):a==mxConstants.DIRECTION_NORTH? +k=b.y-2*h:a==mxConstants.DIRECTION_SOUTH?k=b.y+b.height+2*h:d=a==mxConstants.DIRECTION_EAST?b.x-2*l:b.x+b.width+2*l:null!=c&&(d=f.getRoutingCenterX(b),h=Math.max(Math.abs(d-c.x),l),k=c.y,l=0);e.push(new mxPoint(d-h,k-l));e.push(new mxPoint(d+h,k+l))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0m,h=f.xl;else k=Math.max(b.x,c.x),l=Math.min(b.x+b.width,c.x+c.width),g=k==l,g||(h=Math.max(b.y,c.y),m=Math.min(b.y+b.height,c.y+c.height),h=h==m);!h&&(g||a.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL)?mxEdgeStyle.TopToBottom(a,b,c,d,e):mxEdgeStyle.SideToSide(a,b,c,d,e)},SideToSide:function(a,b,c,d,e){var f=a.view;d=null!=d&&0=b.y&&d.y<=b.y+b.height&&(h=d.y),d.y>=c.y&&d.y<=c.y+c.height&&(f=d.y)),!mxUtils.contains(c,a,h)&&!mxUtils.contains(b,a,h)&&e.push(new mxPoint(a,h)),!mxUtils.contains(c,a,f)&&!mxUtils.contains(b,a,f)&&e.push(new mxPoint(a,f)),1==e.length&&(null!=d?!mxUtils.contains(c, a,d.y)&&!mxUtils.contains(b,a,d.y)&&e.push(new mxPoint(a,d.y)):(f=Math.max(b.y,c.y),b=Math.min(b.y+b.height,c.y+c.height),e.push(new mxPoint(a,f+(b-f)/2)))))},TopToBottom:function(a,b,c,d,e){var f=a.view;d=null!=d&&0=b.x&&d.x<=b.x+b.width)&&(a=d.x),h=null!=d?d.y:Math.round(g+(h-g)/2),!mxUtils.contains(c,a,h)&&!mxUtils.contains(b,a,h)&&e.push(new mxPoint(a,h)),a=null!=d&&d.x>=c.x&&d.x<=c.x+c.width?d.x:f.getRoutingCenterX(c),!mxUtils.contains(c,a,h)&&!mxUtils.contains(b,a,h)&&e.push(new mxPoint(a,h)),1==e.length&&(null!=d&&1==e.length?!mxUtils.contains(c,d.x,h)&&!mxUtils.contains(b,d.x,h)&&e.push(new mxPoint(d.x,h)):(f=Math.max(b.x,c.x),b=Math.min(b.x+b.width,c.x+c.width),e.push(new mxPoint(f+(b- -f)/2,h)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==k||Math.abs(k.x-a.x)>=h||Math.abs(k.y-a.y)>=h)e.push(a),k=a;return k}var g=a.absolutePoints,h=Math.max(1,a.view.scale),k=0r;r++){var y=null!=u&&u.x==t.x,v=null!=u&&u.y==t.y,K=null!=s&&t.y>= -s.y&&t.y<=s.y+s.height,s=null!=s&&t.x>=s.x&&t.x<=s.x+s.width,t=v||null==u&&K,z=y||null==u&&s;if(!(0==r&&(t&&z||y&&v))){if(null!=u&&!v&&!y&&(K||s)){m=K?!1:!0;break}if(z||t){m=t;1==r&&(m=0==d.length%2?t:z);break}}s=c;u=g[p];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),s=null);t=d[d.length-1];y&&v&&(d=d.slice(1))}m&&(null!=g[0]&&g[0].y!=l.y||null==g[0]&&null!=b&&(l.yb.y+b.height))?f(new mxPoint(n.x,l.y)):!m&&(null!=g[0]&&g[0].x!=l.x||null==g[0]&&null!=b&&(l.xb.x+b.width))&&f(new mxPoint(l.x, -n.y));m?n.y=l.y:n.x=l.x;for(r=0;rc.y+c.height))?f(new mxPoint(n.x,l.y)):!m&&(null!=g[p]&&g[p].x!=l.x||null==g[p]&&null!=c&&(l.xc.x+c.width))&&f(new mxPoint(l.x,n.y))));if(null==g[0]&&null!=b)for(;1< +f)/2,h)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==k||Math.abs(k.x-a.x)>=h||Math.abs(k.y-a.y)>=h)e.push(a),k=a;return k}var g=a.absolutePoints,h=Math.max(1,a.view.scale),k=0r;r++){var y=null!=u&&u.x==t.x,v=null!=u&&u.y==t.y,K=null!=s&&t.y>= +s.y&&t.y<=s.y+s.height,s=null!=s&&t.x>=s.x&&t.x<=s.x+s.width,t=v||null==u&&K,z=y||null==u&&s;if(!(0==r&&(t&&z||y&&v))){if(null!=u&&!v&&!y&&(K||s)){l=K?!1:!0;break}if(z||t){l=t;1==r&&(l=0==d.length%2?t:z);break}}s=c;u=g[p];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),s=null);t=d[d.length-1];y&&v&&(d=d.slice(1))}l&&(null!=g[0]&&g[0].y!=m.y||null==g[0]&&null!=b&&(m.yb.y+b.height))?f(new mxPoint(n.x,m.y)):!l&&(null!=g[0]&&g[0].x!=m.x||null==g[0]&&null!=b&&(m.xb.x+b.width))&&f(new mxPoint(m.x, +n.y));l?n.y=m.y:n.x=m.x;for(r=0;rc.y+c.height))?f(new mxPoint(n.x,m.y)):!l&&(null!=g[p]&&g[p].x!=m.x||null==g[p]&&null!=c&&(m.xc.x+c.width))&&f(new mxPoint(m.x,n.y))));if(null==g[0]&&null!=b)for(;1< e.length&&null!=e[1]&&mxUtils.contains(b,e[1].x,e[1].y);)e.splice(1,1);if(null==g[p]&&null!=c)for(;1 -v;v++)mxEdgeStyle.limits[v][1]=l[v][0]-z[v],mxEdgeStyle.limits[v][2]=l[v][1]-z[v],mxEdgeStyle.limits[v][4]=l[v][0]+l[v][2]+z[v],mxEdgeStyle.limits[v][8]=l[v][1]+l[v][3]+z[v];z=l[0][1]+l[0][3]/2;n=l[1][1]+l[1][3]/2;v=l[0][0]+l[0][2]/2-(l[1][0]+l[1][2]/2);K=z-n;z=0;0>v?z=0>K?2:1:0>=K&&(z=3,0==v&&(z=2));n=null;null!=b&&(n=k);b=[[0.5,0.5],[0.5,0.5]];for(v=0;2>v;v++)null!=n&&(b[v][0]=(n.x-l[v][0])/l[v][2],1>=Math.abs(n.x-l[v][0])?a[v]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(n.x-l[v][0]-l[v][2])&&(a[v]= -mxConstants.DIRECTION_MASK_EAST),b[v][1]=(n.y-l[v][1])/l[v][3],1>=Math.abs(n.y-l[v][1])?a[v]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(n.y-l[v][1]-l[v][3])&&(a[v]=mxConstants.DIRECTION_MASK_SOUTH)),n=null,null!=c&&(n=m);v=l[0][1]-(l[1][1]+l[1][3]);m=l[0][0]-(l[1][0]+l[1][2]);n=l[1][1]-(l[0][1]+l[0][3]);p=l[1][0]-(l[0][0]+l[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(m-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(v-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[3]= -Math.max(p-y,0);y=[];c=[];k=[];c[0]=m>=p?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;k[0]=v>=n?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);k[1]=mxUtils.reversePortConstraints(k[0]);m=m>=p?m:p;n=v>=n?v:n;p=[[0,0],[0,0]];r=!1;for(v=0;2>v;v++)0==a[v]&&(0==(c[v]&d[v])&&(c[v]=mxUtils.reversePortConstraints(c[v])),0==(k[v]&d[v])&&(k[v]=mxUtils.reversePortConstraints(k[v])),p[v][0]=k[v],p[v][1]=c[v]);0v;v++)if(0==a[v]&&(0==(p[v][0]&d[v])&&(p[v][0]=p[v][1]),y[v]=p[v][0]&d[v],y[v]|=(p[v][1]&d[v])<<8,y[v]|=(p[1-v][v]&d[v])<<16,y[v]|=(p[1-v][1-v]&d[v])<<24,0==(y[v]&15)&&(y[v]<<=8),0==(y[v]&3840)&&(y[v]= -y[v]&15|y[v]>>8),0==(y[v]&983040)&&(y[v]=y[v]&65535|(y[v]&251658240)>>8),a[v]=y[v]&15,d[v]==mxConstants.DIRECTION_MASK_WEST||d[v]==mxConstants.DIRECTION_MASK_NORTH||d[v]==mxConstants.DIRECTION_MASK_EAST||d[v]==mxConstants.DIRECTION_MASK_SOUTH))a[v]=d[v];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];y=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=z;y-=z;1>d&&(d+=4);1>y&&(y+=4);d=mxEdgeStyle.routePatterns[d-1][y-1];mxEdgeStyle.wayPoints1[0][0]=l[0][0];mxEdgeStyle.wayPoints1[0][1]=l[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-= -f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*l[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*l[0][2];mxEdgeStyle.wayPoints1[0][1]+=l[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=l[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*l[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*l[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;c=y=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))? -0:1;for(v=k=0;v>5,n<<=z,15>=4),p=0<(d[v]&mxEdgeStyle.CENTER_MASK),(r||s)&&9>n?(q=0,r=r?0:1,q=p&&0==k?l[r][0]+b[r][0]*l[r][2]:p?l[r][1]+b[r][1]* -l[r][3]:mxEdgeStyle.limits[r][n],0==k?(n=(q-mxEdgeStyle.wayPoints1[f][0])*m[0],0 +v;v++)mxEdgeStyle.limits[v][1]=m[v][0]-z[v],mxEdgeStyle.limits[v][2]=m[v][1]-z[v],mxEdgeStyle.limits[v][4]=m[v][0]+m[v][2]+z[v],mxEdgeStyle.limits[v][8]=m[v][1]+m[v][3]+z[v];z=m[0][1]+m[0][3]/2;n=m[1][1]+m[1][3]/2;v=m[0][0]+m[0][2]/2-(m[1][0]+m[1][2]/2);K=z-n;z=0;0>v?z=0>K?2:1:0>=K&&(z=3,0==v&&(z=2));n=null;null!=b&&(n=k);b=[[0.5,0.5],[0.5,0.5]];for(v=0;2>v;v++)null!=n&&(b[v][0]=(n.x-m[v][0])/m[v][2],1>=Math.abs(n.x-m[v][0])?a[v]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(n.x-m[v][0]-m[v][2])&&(a[v]= +mxConstants.DIRECTION_MASK_EAST),b[v][1]=(n.y-m[v][1])/m[v][3],1>=Math.abs(n.y-m[v][1])?a[v]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(n.y-m[v][1]-m[v][3])&&(a[v]=mxConstants.DIRECTION_MASK_SOUTH)),n=null,null!=c&&(n=l);v=m[0][1]-(m[1][1]+m[1][3]);l=m[0][0]-(m[1][0]+m[1][2]);n=m[1][1]-(m[0][1]+m[0][3]);p=m[1][0]-(m[0][0]+m[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(l-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(v-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[3]= +Math.max(p-y,0);y=[];c=[];k=[];c[0]=l>=p?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;k[0]=v>=n?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);k[1]=mxUtils.reversePortConstraints(k[0]);l=l>=p?l:p;n=v>=n?v:n;p=[[0,0],[0,0]];r=!1;for(v=0;2>v;v++)0==a[v]&&(0==(c[v]&d[v])&&(c[v]=mxUtils.reversePortConstraints(c[v])),0==(k[v]&d[v])&&(k[v]=mxUtils.reversePortConstraints(k[v])),p[v][0]=k[v],p[v][1]=c[v]);0v;v++)if(0==a[v]&&(0==(p[v][0]&d[v])&&(p[v][0]=p[v][1]),y[v]=p[v][0]&d[v],y[v]|=(p[v][1]&d[v])<<8,y[v]|=(p[1-v][v]&d[v])<<16,y[v]|=(p[1-v][1-v]&d[v])<<24,0==(y[v]&15)&&(y[v]<<=8),0==(y[v]&3840)&&(y[v]= +y[v]&15|y[v]>>8),0==(y[v]&983040)&&(y[v]=y[v]&65535|(y[v]&251658240)>>8),a[v]=y[v]&15,d[v]==mxConstants.DIRECTION_MASK_WEST||d[v]==mxConstants.DIRECTION_MASK_NORTH||d[v]==mxConstants.DIRECTION_MASK_EAST||d[v]==mxConstants.DIRECTION_MASK_SOUTH))a[v]=d[v];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];y=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=z;y-=z;1>d&&(d+=4);1>y&&(y+=4);d=mxEdgeStyle.routePatterns[d-1][y-1];mxEdgeStyle.wayPoints1[0][0]=m[0][0];mxEdgeStyle.wayPoints1[0][1]=m[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-= +f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*m[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*m[0][2];mxEdgeStyle.wayPoints1[0][1]+=m[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=m[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*m[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*m[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;c=y=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))? +0:1;for(v=k=0;v>5,n<<=z,15>=4),p=0<(d[v]&mxEdgeStyle.CENTER_MASK),(r||s)&&9>n?(q=0,r=r?0:1,q=p&&0==k?m[r][0]+b[r][0]*m[r][2]:p?m[r][1]+b[r][1]* +m[r][3]:mxEdgeStyle.limits[r][n],0==k?(n=(q-mxEdgeStyle.wayPoints1[f][0])*l[0],0e&&(e+=4);1>a&&(a+=4);b=routePatterns[e-1][a-1];if(0==c||0==d)null!=inlineRoutePatterns[e-1][a- 1]&&(b=inlineRoutePatterns[e-1][a-1]);return b}},mxStyleRegistry={values:[],putValue:function(a,b){mxStyleRegistry.values[a]=b},getValue:function(a){return mxStyleRegistry.values[a]},getName:function(a){for(var b in mxStyleRegistry.values)if(mxStyleRegistry.values[b]==a)return b;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation); mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter); @@ -1057,12 +1057,12 @@ mxGraphView.prototype.getPerimeterPoint=function(a,b,c,d){var e=null;if(null!=a) mxGraphView.prototype.getRoutingCenterY=function(a){var b=null!=a.style?parseFloat(a.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return a.getCenterY()+b*a.height};mxGraphView.prototype.getPerimeterBounds=function(a,b){b=null!=b?b:0;null!=a&&(b+=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0));return a.getPerimeterBounds(b*this.scale)}; mxGraphView.prototype.getPerimeterFunction=function(a){a=a.style[mxConstants.STYLE_PERIMETER];if("string"==typeof a){var b=mxStyleRegistry.getValue(a);null==b&&this.isAllowEval()&&(b=mxUtils.eval(a));a=b}return"function"==typeof a?a:null};mxGraphView.prototype.getNextPoint=function(a,b,c){a=a.absolutePoints;var d=null;null!=a&&2<=a.length&&(d=a.length,d=a[c?Math.min(1,d-1):Math.max(0,d-2)]);null==d&&null!=b&&(d=new mxPoint(b.getCenterX(),b.getCenterY()));return d}; mxGraphView.prototype.getVisibleTerminal=function(a,b){for(var c=this.graph.getModel(),d=c.getTerminal(a,b),e=d;null!=d&&d!=this.currentRoot;){if(!this.graph.isCellVisible(e)||this.isCellCollapsed(d))e=d;d=c.getParent(d)}c.getParent(e)==c.getRoot()&&(e=null);return e}; -mxGraphView.prototype.updateEdgeBounds=function(a){var b=a.absolutePoints,c=b[0],d=b[b.length-1];if(c.x!=d.x||c.y!=d.y){var e=d.x-c.x,f=d.y-c.y;a.terminalDistance=Math.sqrt(e*e+f*f)}else a.terminalDistance=0;var d=0,g=[],f=c;if(null!=f){for(var c=f.x,h=f.y,k=c,m=h,l=1;l=Math.round(h+g)&&k=f?0:f*f/(a*a+m*m));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,h.x,h.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,h.x,h.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-n-a)/d),e/this.scale)}}return new mxPoint}; +mxGraphView.prototype.updateEdgeBounds=function(a){var b=a.absolutePoints,c=b[0],d=b[b.length-1];if(c.x!=d.x||c.y!=d.y){var e=d.x-c.x,f=d.y-c.y;a.terminalDistance=Math.sqrt(e*e+f*f)}else a.terminalDistance=0;var d=0,g=[],f=c;if(null!=f){for(var c=f.x,h=f.y,k=c,l=h,m=1;m=Math.round(h+g)&&k=f?0:f*f/(a*a+l*l));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,h.x,h.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,h.x,h.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-n-a)/d),e/this.scale)}}return new mxPoint}; mxGraphView.prototype.updateEdgeLabelOffset=function(a){var b=a.absolutePoints;a.absoluteOffset.x=a.getCenterX();a.absoluteOffset.y=a.getCenterY();if(null!=b&&0this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,h=a?Math.ceil(d.width/f.width)+1:0,k=(h-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,h=a?Math.ceil(d.width/f.width)+1:0,k=(h-1)*f.width,l=(g-1)*f.height;null==this.horizontalPageBreaks&&0this.model.getChildCount(b)&&c--;this.model.add(b,a[h],c+h);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[h],!0);this.isExtendParentsOnAdd(a[h])&&this.isExtendParent(a[h])&&this.extendParent(a[h]);(null==g||g)&&this.constrainChild(a[h]);null!=d&&this.cellConnected(a[h],d,!0);null!=e&&this.cellConnected(a[h],e,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",b,"index",c,"source",d,"target", +mxGraph.prototype.cellsAdded=function(a,b,c,d,e,f,g){if(null!=a&&null!=b&&null!=c){this.model.beginUpdate();try{for(var h=f?this.view.getState(b):null,k=null!=h?h.origin:null,l=new mxPoint(0,0),h=0;hthis.model.getChildCount(b)&&c--;this.model.add(b,a[h],c+h);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[h],!0);this.isExtendParentsOnAdd(a[h])&&this.isExtendParent(a[h])&&this.extendParent(a[h]);(null==g||g)&&this.constrainChild(a[h]);null!=d&&this.cellConnected(a[h],d,!0);null!=e&&this.cellConnected(a[h],e,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",b,"index",c,"source",d,"target", e,"absolute",f))}finally{this.model.endUpdate()}}};mxGraph.prototype.autoSizeCell=function(a,b){if(null!=b?b:1)for(var c=this.model.getChildCount(a),d=0;df&&(l=0),b>g&&(n=0),this.view.setTranslate(Math.floor(l/2-h.x),Math.floor(n/2-h.y)),this.container.scrollLeft=(a-f)/ -2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(k.x-h.x*m+l*c/m):k.x,b?Math.floor(k.y-h.y*m+n*d/m):k.y)}; +mxGraph.prototype.center=function(a,b,c,d){a=null!=a?a:!0;b=null!=b?b:!0;c=null!=c?c:0.5;d=null!=d?d:0.5;var e=mxUtils.hasScrollbars(this.container),f=this.container.clientWidth,g=this.container.clientHeight,h=this.getGraphBounds(),k=this.view.translate,l=this.view.scale,m=a?f-h.width:0,n=b?g-h.height:0;e?(h.x-=k.x,h.y-=k.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>f&&(m=0),b>g&&(n=0),this.view.setTranslate(Math.floor(m/2-h.x),Math.floor(n/2-h.y)),this.container.scrollLeft=(a-f)/ +2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(k.x-h.x*l+m*c/l):k.x,b?Math.floor(k.y-h.y*l+n*d/l):k.y)}; mxGraph.prototype.zoom=function(a,b){b=null!=b?b:this.centerZoom;var c=Math.round(100*this.view.scale*a)/100,d=this.view.getState(this.getSelectionCell());a=c/this.view.scale;if(this.keepSelectionVisibleOnZoom&&null!=d)d=new mxRectangle(d.x*a,d.y*a,d.width*a,d.height*a),this.view.scale=c,this.scrollRectToVisible(d)||(this.view.revalidate(),this.view.setScale(c));else if(d=mxUtils.hasScrollbars(this.container),b&&!d){var d=this.container.offsetWidth,e=this.container.offsetHeight;if(1a.width*e||0a.height*e)return!0}return!1};mxGraph.prototype.getChildVertices=function(a){return this.getChildCells(a,!0,!1)};mxGraph.prototype.getChildEdges=function(a){return this.getChildCells(a,!1,!0)}; mxGraph.prototype.getChildCells=function(a,b,c){a=null!=a?a:this.getDefaultParent();a=this.model.getChildCells(a,null!=b?b:!1,null!=c?c:!1);b=[];for(c=0;c=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=h?f.push(n):this.getCells(a, -b,c,d,n,f)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),h=0;h=a)&&(!e||m.y>=b)&&f.push(k)}return f}; -mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,h=0,k=0;kh&&(h=l,g=m)}}0==d.length&&null!=g&&d.push(g)}return d}; +mxGraph.prototype.getCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=h?f.push(n):this.getCells(a, +b,c,d,n,f)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),h=0;h=a)&&(!e||l.y>=b)&&f.push(k)}return f}; +mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,h=0,k=0;kh&&(h=m,g=l)}}0==d.length&&null!=g&&d.push(g)}return d}; mxGraph.prototype.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)))if(d=this.model.getEdgeCount(a),0c*this.view.scale||Math.abs(f.y- -b.getGraphY())>c*this.view.scale){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var e=this.selectionCellsHandler.getHandler(d.cell);if(null!=e&&null!=e.bends&&0c*this.view.scale){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var e=this.selectionCellsHandler.getHandler(d.cell);if(null!=e&&null!=e.bends&&0mxUtils.indexOf(b,e)&&c.push(e)): c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var n=new mxRubberband(this);this.getRubberband=function(){return n};var p=(new Date).getTime(),r=0,q=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove= function(){var a=this.currentState;q.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),r=0):r=(new Date).getTime()-p};var s=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3=a&&p.y+p.height<=k&&p.y>=b&&p.x+p.width<=h)&&f.push(n);this.getAllCells(a,b,c,d,n,f)}}}return f};var K=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:K.apply(this,arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style, "locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var F=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();F=null!=c&&!this.isSelectionEmpty()&&!this.isCellSelected(c.cell)?this.getSelectionCells():null}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell"); null==d?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),n.start(c.x,c.y)):null!=F?this.addSelectionCells(F):1p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:c?"UTC":(String(a).match(e)||[""]).pop().replace(f,""),o:(0this.activationDelay)if(this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==c||!mxUtils.contains(this.bbox,b,c)))null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!= a&&this.graph.connectionHandler.constraintHandler.reset()):this.reset()}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.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(b,c,f,g){if(null!=c&&null!=b&&("1"==c.style.snapToPoint||"1"==b.style.snapToPoint)){c=this.getTerminalPort(b,c,g);var h=this.getNextPoint(b,f,g),k=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var n=Math.cos(-m),p=Math.sin(-m),h=mxUtils.getRotatedPoint(h,n,p,l);n=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]|| -0);n+=parseFloat(b.style[g?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);h=this.getPerimeterPoint(c,h,0==m&&k,n);0!=m&&(n=Math.cos(m),p=Math.sin(m),h=mxUtils.getRotatedPoint(h,n,p,l));if(null!=c){m=this.graph.getAllConnectionConstraints(c);k=l=null;for(n=0;nb&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&& @@ -1663,7 +1663,7 @@ return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function() c;++b)sel.addRange(a[b])}else document.selection&&a.select&&a.select()};var e=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&&(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));e.apply(this,arguments)};var f=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,b){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?f.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape= function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var g=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(a,b){g.apply(this,arguments);var c=this.graph.view.getState(a);this.textarea.className=null!=c&&1==c.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var c=this.graph.getModel().getParent(a), d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(c)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var h=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function b(a,c){c.originalNode= -a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(b.originalNode!=a)d(a);else if(null!=a){a=a.firstChild;for(b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}(1!=a.nodeType||"BR"!==a.nodeName&&null==a.firstChild)&&(3!=a.nodeType||0==mxUtils.trim(mxUtils.getTextContent(a)).length)?a.parentNode.removeChild(a):(3== +a;a=a.firstChild;for(var d=c.firstChild;null!=a&&null!=d;)b(a,d),a=a.nextSibling,d=d.nextSibling;return c}function c(a,b){if(null!=a)if(b.originalNode!=a)d(a);else{a=a.firstChild;for(b=b.firstChild;null!=a;){var e=a.nextSibling;null==b?d(a):(c(a,b),b=b.nextSibling);a=e}}}function d(a){for(var b=a.firstChild;null!=b;){var c=b.nextSibling;d(b);b=c}(1!=a.nodeType||"BR"!==a.nodeName&&null==a.firstChild)&&(3!=a.nodeType||0==mxUtils.trim(mxUtils.getTextContent(a)).length)?a.parentNode.removeChild(a):(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")))}h.apply(this,arguments);!mxClient.IS_QUIRKS&&(7!==document.documentMode&&8!==document.documentMode)&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=b(this.textarea,this.textarea.cloneNode(!0)); window.setTimeout(mxUtils.bind(this,function(){c(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell),b=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),c=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0k||Math.abs(h)>k)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e, -f),this.isSpaceEvent(b)?(e=this.x+this.width,f=this.y+this.height,g=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/g)*g,this.height=this.graph.snap(this.height/g)*g,this.x=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0, -0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var H=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?u:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return H.apply(this,arguments)};var B=mxGraphHandler.prototype.getBoundingBox; -mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&(null!=d&&d.relative)&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return B.apply(this,arguments)};var A=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b= -this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):A.apply(this,arguments)};var D=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell), -e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&D.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()g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)), +this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var z=mxRubberband.prototype.reset; +mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);z.apply(this,arguments)};var y=(new Date).getTime(),v=0,K=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){K.apply(this,arguments);c!=this.currentTerminalState?(y=(new Date).getTime(),v=0):v=(new Date).getTime()-y;this.currentTerminalState=c};var F=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent= +function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length- +1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR, +mxConstants.HANDLE_STROKECOLOR)};var H=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?u:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return H.apply(this,arguments)};var B=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&& +(null!=d&&d.relative)&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return B.apply(this,arguments)};var A=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox? +(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):A.apply(this,arguments)};var D=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&& +D.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()l||Math.abs(k)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(e, -f),this.isSpaceEvent(b)?(e=this.x+this.width,f=this.y+this.height,g=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/g)*g,this.height=this.graph.snap(this.height/g)*g,this.x=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0, -0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var E=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?x:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return E.apply(this,arguments)};var C=mxGraphHandler.prototype.getBoundingBox; -mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&&null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return C.apply(this,arguments)};var F=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b= -this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):F.apply(this,arguments)};var G=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell), -e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&G.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()g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)), +this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var A=mxRubberband.prototype.reset; +mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);A.apply(this,arguments)};var z=(new Date).getTime(),v=0,D=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){D.apply(this,arguments);c!=this.currentTerminalState?(z=(new Date).getTime(),v=0):v=(new Date).getTime()-z;this.currentTerminalState=c};var y=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent= +function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length- +1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR, +mxConstants.HANDLE_STROKECOLOR)};var E=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?x:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return E.apply(this,arguments)};var C=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var b=this.graph.getModel(),c=b.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(b.isEdge(c)&& +null!=d&&d.relative&&(b=this.graph.view.getState(a[0]),null!=b&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox))return mxRectangle.fromRectangle(b.text.boundingBox)}return C.apply(this,arguments)};var F=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var b=this.graph.getModel(),c=b.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return b.isEdge(c)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox? +(b=a.text.unrotatedBoundingBox||a.text.boundingBox,new mxRectangle(Math.round(b.x),Math.round(b.y),Math.round(b.width),Math.round(b.height))):F.apply(this,arguments)};var G=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,b){var c=this.graph.getModel(),d=c.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(b)==mxEvent.ROTATION_HANDLE||!c.isEdge(d)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&& +G.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() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/war/stencils/veeam/2d.xml b/war/stencils/veeam/2d.xml new file mode 100644 index 00000000..3ece184c --- /dev/null +++ b/war/stencils/veeam/2d.xml @@ -0,0 +1,11861 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/war/stencils/veeam/3d.xml b/war/stencils/veeam/3d.xml new file mode 100644 index 00000000..3ad8a8df --- /dev/null +++ b/war/stencils/veeam/3d.xml @@ -0,0 +1,11155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file